3

githubマスターから完全にプルして、現在の作業ディレクトリを更新したいと思います。私が作業したform.htmlというファイルが私の作業ディレクトリにあり、古いバージョンはgithuboriginmasterブランチにあります。

 git pull origin master

マスターからプルするとき、Imは競合を解決するように求めました。マージの競合を解決したくありませんが、代わりに、ローカルブランチのファイルform.htmlを、元のマスターブランチ(リモート)のform.htmlに完全に置き換えます。

これを達成するための最良の方法は何ですか?ありがとう

4

2 に答える 2

6

ローカルファイルをコミットしていない場合は、次のことができます(「ローカルの変更を保持するgitpull 」のアイデアに従って):

git stash
git pull
git stash pop
# if conflict on pop:
git checkout --theirs -- form.html

ただし、ファイルがコミットされている場合は、「 gitマージを実行するときに特定のコミットを除外することは可能ですか?」を参照し、.gitattributesを使用して適切なマージを宣言します。

form.html merge=ours
于 2013-03-24T00:05:36.133 に答える
1

form.html ファイルをコミットしたと仮定すると...

「git pull origin master」を実行して競合が発生した後、その時点で、ローカル バージョンに基づいて競合を簡単に解決できます。プル後に次の操作を行います。

git checkout --ours -- <files in conflict>
git add <files in conflict>
git commit -m 'resolved with --ours'
git push origin master
于 2013-03-24T02:18:32.877 に答える