4

master ブランチと feature ブランチがあります。どちらにも Bar.cs ファイルが含まれています。ただし、機能をマスターにマージしようとすると、ファイル Bar.cs が機能ブランチで削除されたと報告されます。しかし、機能上 Bar.cs が削除されることはありませんでした。前述のとおり、両方のファイルが両方のブランチに存在します。

マスター上のファイル Bar.cs の git ログは、次を返します。

commit daaf6bd6c8d2a38b839fae44234ceef2a0c9e188
Author: xxxx
Date:   Fri Jun 28 10:17:18 2013 +0000

    Renamed Foo.cs to Bar.cs

機能上のファイル Bar.cs の git ログは、次を返します。

commit 93dea9f7a2b9474c169bf8a49c5a721572a9d369
Author: xxxx
Date:   Fri Jul 5 16:14:46 2013 +0000

    Another change

commit de9fbe3ae13ccdac8a540c653af10abb1a2f1006
Author: xxxx
Date:   Tue Jul 2 16:03:43 2013 +0000

    Renamed Foo.cs to Bar.cs

ご覧のとおり、機能では、7 月 2 日に master からの変更をマージし、6 月 28 日にファイルにもう 1 つの変更を加えました。

マージしようとすると、git は次のように言います。

CONFLICT (rename/delete): Bar.cs deleted in feature and renamed in HEAD. Version HEAD of Bar.cs left in tree.

何が起こっているのか分かりますか?

4

2 に答える 2

3

git-svnツールを使用して SVN リポジトリから同期された 2 つのブランチ間のマージ中に同じ問題が発生しました。

一部のファイルはブランチで名前が変更され、masterブランチで更新されましたfeatureが、git はこれらのファイルがサイドで削除されたことを検出しました。feature

CONFLICT (rename/delete): Classes/A.m deleted in feature and renamed in HEAD. Version HEAD of Classes/A.m left in tree.

解決策は、マージ戦略をresolveデフォルトの代わりに変更することでしたrecursive

git merge -s resolve feature
于 2013-10-04T09:34:48.513 に答える