元のリポジトリにあるものでローカルファイルを強制的に上書きしますか?


224

リポジトリにある最新のファイルを取得し、ローカルにあるものを上書きしたい。どうすればgitクライアントでこれを行うことができますか?

回答:


443

1つのファイルのみを上書きする場合:

git fetch
git checkout origin/master <filepath>

変更されたすべてのファイルを上書きする場合:

git fetch
git reset --hard origin/master

(これは、masterローカルで作業していて、オリジンの変更が必要であることを前提としていますmaster-ブランチにいる場合は、代わりにそれを置き換えてください。)


これは逆でした。それは私のローカルファイルで誤ってリポジトリを上書きしました。
C_Rod

git fetch git reset --hard origin/masterまたは/<branch name>
エイドリアンfilipescu 2017年

それは素晴らしいです...まさに私が探していたもの。おかげで
チアゴパッソス

@C_Rodが何をしたかはわかりませんが、これはリポジトリに影響を与える可能性はありません
Brad Mace

26

必要なファイルがあるのと同じブランチで作業していると仮定して、最も単純なバージョン:

git checkout path/to/file

これを頻繁に行うので、エイリアスをに設定していgc='git checkout'ます。


4
シンプルでエレガント、そして仕事をします。前に「git fetch」を忘れないでください。
Almir Campos

6
git checkout path/to/file私のために働いた。また、この図git checkoutは概念的に何が行われているかを理解するのに非常に役立つことがわかりました。 リンク
Cale Sweeney

9

これは私のために働きました:

git reset HEAD <filename>

私はかなりの数のさまざまなソリューションを見ましたが、この1は、最も効果的な1、おかげで
カルバン周

3

完全同期にはいくつかのタスクがあります:

  • 変更を元に戻す
  • 新しいファイルを削除する
  • リモートリポジトリから最新を取得

git reset HEAD --hard

git clean -f

git pull origin master

または、私が好むのは、リモートから最新のものを使用して新しいブランチを作成することです:

git checkout origin/master -b <new branch name>

originは私のリモートリポジトリ参照で、masterは私の考慮されるブランチ名です。これらはあなたのものとは異なる場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.