⚠重要:ローカルで変更を加えると、それらは失われます。オプションの有無にかかわらず--hard
、プッシュされていないローカルコミットは失われます。[*]
Gitによって追跡されていないファイル(アップロードされたユーザーコンテンツなど)がある場合、これらのファイルは影響を受けません。
まず、フェッチを実行して、すべてのorigin/<branch>
参照を最新に更新します。
git fetch --all
現在のブランチをバックアップします。
git branch backup-master
次に、2つのオプションがあります。
git reset --hard origin/master
または他のブランチにいる場合:
git reset --hard origin/<branch_name>
説明:
git fetch
何もマージまたはリベースしようとせずに、リモートから最新のものをダウンロードします。
次に、git reset
マスターブランチをフェッチしたものにリセットします。この--hard
オプションは、作業ツリー内のすべてのファイルを変更して、origin/master
現在のローカルコミットを維持する
[*]master
:リセットする前からブランチを作成することで、現在のローカルコミットを維持できることに注意してください。
git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master
この後、古いコミットはすべてに保持されnew-branch-to-save-current-commits
ます。
コミットされていない変更
ただし、コミットされていない変更は(ステージングされていても)失われます。必要なものはすべて隠してコミットしてください。そのためには、次を実行できます。
git stash
そして、これらのコミットされていない変更を再適用するには:
git stash pop