Gitリモートからプルするときにリモート変更を使用して競合を解決する質問する

Gitリモートからプルするときにリモート変更を使用して競合を解決する質問する

GitHub リポジトリから自分のサーバーにコードをプルしようとしていますが、マージの競合のためプルが失敗し続けます。前回のプル以降にローカル サーバーで発生した可能性のある変更は保持したくありません。

では、競合について煩わされるのではなく、GitHub にあるバージョンで Git を強制的に上書きする方法はありますか?

ベストアンサー1

ローカルで行ったコミットを本当に破棄したい場合、つまり、二度と履歴に残したくない場合は、プルの方法を尋ねているのではありません。プルはマージを意味し、マージする必要はありません。必要なのは、次の操作だけです。

# fetch from the default remote, origin
git fetch
# reset your current branch (master) to origin's master
git reset --hard origin/master

個人的には、まず現在の HEAD にバックアップ ブランチを作成することをお勧めします。そうすれば、これが悪い考えだと気付いた場合に、それを見失うことがなくなります。

一方、それらのコミットを保持して origin とマージしたように見せかけ、マージによって origin のバージョンのみが保持されるようにしたい場合は、次oursのマージ戦略を使用できます。

# fetch from the default remote, origin
git fetch
# create a branch at your current master
git branch old-master
# reset to origin's master
git reset --hard origin/master
# merge your old master, keeping "our" (origin/master's) content
git merge -s ours old-master

おすすめ記事