3

1つのファイルでローカルマスターに変更を加えました。別の支店からチェックアウトしました。

I am in master branch
git checkout development /foo/file1.txt

元のファイルに戻す必要があります。git pullを実行しようとしましたが、すでに最新の状態であると表示されました。変更を追加またはコミットしませんでした。

リポジトリからファイルのクリーン/元のコピーを取得するには、どのコマンドを使用しますか?または、ローカルリポジトリからの元のコピーですか?

ありがとう

4

3 に答える 3

7

私が正しく理解していれば、追加またはコミットしていないローカルで変更されたファイルがあります。あなたが走るならgit status、あなたは見ることを期待するべきです

# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   foo/file1.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

その場合、gitは実際にステータス出力にヒントを与えています。あなたがする必要があるのはgit checkout -- foo/file1.txt。これにより、ローカルで行った変更が破棄され、チェックインされたコンテンツが返されます。gitは、あなたが行ったときにリモートで最新であるとあなたに言ったのでgit pull、これはリモートが持っているのと同じバージョンであるはずです。
お役に立てれば。

于 2012-07-16T16:43:49.960 に答える
1
  1. 単一のファイルでリモートリポジトリからgitをプルすることは悪い習慣です(特に必要な場合を除いて、これは非常にまれです)。
  2. ファイルのクリーンコピーを取得したい(またはファイルに加えられた変更を元に戻したい)場合は、次のようにします。

    gitcheckoutファイル名

これは、ローカルリポジトリからコピーを取得するだけでなく、同じブランチからコピーを取得します。

于 2016-05-24T07:02:26.300 に答える
0

git v2.23以降、これを行うための推奨される方法は次のとおりです。

git restore <filename>
于 2021-07-27T23:52:27.500 に答える