私はGitHubリポジトリから自分のサーバーにコードを取り込もうとしていますが、マージの競合のために引き込みが失敗し続けます。前回のプル以降にローカルサーバーで発生した可能性のある変更を保持したくありません。
競合を気にするのではなく、GitにGitHubのどのバージョンでも上書きさせる方法はありますか。
ローカルで作成したコミットを本当に破棄したいのであれば、つまりそれらを二度と履歴に入れないでください。プルする方法を尋ねているのではありません。プルとはマージを意味します。マージ。あなたがする必要があるのはこれだけです:
# 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
Nvmが指す重複リンクからの回答を使用することもできます。
あるいは、あなたはそれらの変更を使用して衝突を解決することができます(しかしあなたの変更のいくつかはそれらがリモートバージョンと衝突しないなら保持されるかもしれません):
git pull -s recursive -X theirs