ローカルリポジトリのブランチをリモートリポジトリの HEAD と同じにリセットする 質問する

ローカルリポジトリのブランチをリモートリポジトリの HEAD と同じにリセットする 質問する

ローカル ブランチをリモート リポジトリのブランチと同じ状態にリセットするにはどうすればよいですか?

私は試した:

git reset --hard HEAD

しかし、git status私はファイルを変更したと主張しています:

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
      modified:   java/com/mycompany/TestContacts.java
      modified:   java/com/mycompany/TestParser.java

ベストアンサー1

ブランチをリモート ブランチと完全に一致するように設定するには、次の 2 つの手順を実行します。

git fetch origin
git reset --hard origin/master

念のため、これを行う前に現在のブランチの状態を保存したい場合は、次のようにします。

git commit -a -m "Saving my work, just in case"
git branch my-saved-work

これで、作業を元に戻したい場合(または後で確認したい場合や更新したブランチと比較したい場合)に備えて、作業内容がブランチ「my-saved-work」に保存されます。

最初の例では、リモート リポジトリの名前が「origin」であり、リモート リポジトリの「master」という名前のブランチが、ローカル リポジトリで現在チェックアウトされているブランチと一致していることを前提としていることに注意してください。

ところで、あなたが直面しているこの状況は、非ベア リポジトリの現在チェックアウトされているブランチにプッシュが行われた一般的なケースに非常によく似ています。最近、ローカル リポジトリにプッシュしましたか? そうでない場合は、心配する必要はありません。これらのファイルが予期せず変更されてしまった原因は他に何かあるはずです。それ以外の場合は、非ベア リポジトリにプッシュすることは推奨されないことに注意してください (特に、現在チェックアウトされているブランチにはプッシュしないでください)。

おすすめ記事