2012-11-27 3 views
84

私はmerge gitとし、マージの競合があるとしましょう。マージ中に常にGitに新しいバージョンを選択させますか?

私の質問は、どうすればgitに常に競合する新しいバージョンのコードを選択させることができますか?私は手で矛盾を解決する必要はありませんか?

+0

可能重複します(http:/ /stackoverflow.com/questions/4785107/git-pull-from-remote-can-i-force-it-to-overwrite-rather-than-report-conflicts) – Rawkode

+0

しかし、私はマージをしたいですか? )だけでなく、自動的に競合を解決することができます。 – bartek

答えて

160

正確には "新しい"バージョンではありませんが、git merge branch -X theirsを使用して、現在のブランチのバージョンをgit merge branch -X oursにするか、マージするブランチのバージョンを優先するようにgitに指示することができます。 man git-mergeから

:私はこれを使用

ours:

This option forces conflicting hunks to be auto-resolved cleanly by favoring our version. Changes from the other tree that do not conflict with our side are reflected to the merge result. For a binary file, the entire contents are taken from our side.

theirs:

This is the opposite of "ours".

+7

'ours'-' theirs' !!ちょうどそれを言うと、コマンドが何をしているのか理解している!私は悪魔が大好き! :D – Haywire

+9

注: 'git merge branch'をすでに使用している場合は、これを行う前に' git merge --abort'する必要があります。 –

+1

私のために働かない。それはまだマージを中止します。 'エラー:次のような、未追跡の作業ツリーファイルは、マージによって上書きされます。'これらのファイルが最初にこのブランチにある理由はわかりませんが、上書きする必要があり、gitは拒否します。 – mcv

15

git fetch --prune 
git reset --hard origin/master 
[リモートからのgitプル..私はそれがレポートの競合ではなく、上書きを強制することができますか?]の
+1

このソリューションは、私が望むのはマスターブランチでオーバーライドするときに、コンマのないコンフリクトを修正するのに役立ちました。私はgitリセットを使用しました - ハードマスター(ローカルから) –

関連する問題