2011-07-20 31 views
1

私はマージの競合が発生しています。通常、ファイルの名前を変更して、リポジトリから引き出して解決を行ったり、手動で編集したりできます。今回は、競合するファイルの変更をコミットしました。ステージング領域にあります。 git reset HEAD <file>を使用してからもう一度git pullを使用してみましたが、引き続きマージの競合が発生します。 問題のあるファイルを強制的に上書きする方法はありますか? エラー:次のファイルをローカルの変更がマージによって上書きされます:DB/profile_edit.php強制的にgitでファイルにプルを強制するには?

私はprofile_edit.phpbkupするファイルの名前を変更するここで

は私が得るメッセージです。 それから私はgit pull と私はまだ同じエラーが発生します。どうしてこれなの?ファイルはもはや存在しないので、どのように置き換えることができますか?

ありがとうございました。

+0

コミットした変更を保持したくないですか?または2つを一緒にマージしますか? – Andy

+0

2つのファイルの違いを開くにはどうすればよいですか?確かに、私はそれをしたいと思います。 – egidra

+0

@egidra:あなたは引っ張り、争いを起こして解決させます。 git-mergeのマンページを参照してください。具体的には、「どのように衝突が起こるか」(http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_conflicts_are_presented)コンフリクトの解決方法](http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_to_resolve_conflicts) "のセクションを参照してください。 – Cascabel

答えて

0

あなたは離れてあなたが上流へ同時に行われたすべての変更をスローする場合:このことができます

git fetch origin 
git merge -s recursive -Xtheirs origin/branchA 

希望:あなたの代わりに、上流優遇競合を解決したい場合は

git fetch origin 
git push -f . origin/branchA:branchA 

を。

+0

ブランチを使用していない場合はどうすればよいですか?私たちはすべて起源です。 – egidra

+0

私はヘッドレスで働くことを勧めません。あなたが押して引っ張っているなら、あなたは枝を使っています。あなた/缶/タグを使用することができますが、これはgitを適切に使用する方法ではありません。 –

0

git reset filenameでインデックスからファイルを取り出すことができます。変更しない場合は、--hardスイッチをリセットに追加します。

競合自体を解決する必要があります。

1つのオプションはgit fetch remoteRepo です。これは、リモートリポジトリをフェッチしますが、ブランチを一緒にマージすることはありません。

git diff HEAD remoteRepo/remoteBranch <fileName>

を使用し、興味のあるファイルの2つのバージョンをdiffのためにそこにマージの競合があり、あなたは両方のファイルからコンテンツを保持したい場合は、あなたが競合を行うが、解決できることは何もありません。

+0

私はまだこのエラーが表示されます:エラー:次のファイルのローカル変更は、merge:edit.phpによって上書きされます。私はリセットをした後、edit.phpbkupというファイルの名前を変更し、 "git pull"を実行するとエラーが発生します。 – egidra

+0

マージを行う前に 'git stash'を試してみてください – Andy

関連する問題