2

最初に、私はこの質問を知っています特定のファイルで競合するマージのために常にローカルバージョンを選択するようにgitに指示するにはどうすればよいですか? しかし、この投稿は役に立たず、私の評判のためにコメントを追加することはできません.

http://git-scm.com/book/en/Customizing-Git-Git-Attributesは、カスタム マージ ドライバーを設定する代わりに、パスのマージ戦略を私たちのものに設定することを提案しています。

終了コード 0 を返すカスタム マージ ドライバを追加する利点と違いは何ですか?

リポジトリの最上位に .gitattributes ファイルがあります。

pom.xml merge=ours

しかし、pom.xml ファイルが変更された 2 つのブランチをマージすると、マージを解決できません。

$ git merge origin/master
Auto-merging pom.xml
CONFLICT (content): Merge conflict in pom.xml
Automatic merge failed; fix conflicts and then commit the result.

そして、標準のマージ競合の結果が得られます。

<pom>
<<<<<<< HEAD
    <version>0.88-SNAPSHOT</version>
=======
    <version>0.87.0</version>
>>>>>>> origin/master
</pom>

私は何を間違っていますか?

4

1 に答える 1

3

.gitattributesマージ ドライバーを宣言することはできますが、それは、「 & 個別のファイルのマージ戦略」のように、git 構成で定義する必要があることを意味します。

[merge "ours"]
    name = "Keep ours merge"
    driver = true

これにより、ドライバーを定義する必要はありませんが、すべての-sファイルの競合を解決するオプションとは対照的に、ファイルまたはファイルのセットのマージ戦略が可能になります( だけでなく)git merge pom.xml

git merge -s ours
于 2014-03-22T15:31:54.720 に答える