1. ホーム
  2. git

[解決済み] git の 'both added' マージの競合を解決するには?

2022-04-28 10:29:28

質問

git でリベースしているのですが、「両方が追加された」というコンフリクトが発生します。つまり、まったく同じファイル名が、自分のブランチとリベース先のブランチで別々に追加されたのです。 git status が教えてくれる。

# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#       both added:         src/MyFile.cs

質問ですが、これを解決するにはどうしたらいいのでしょうか? マージツールを使用しなければならないのでしょうか、それともコマンドラインから実行する方法があるのでしょうか? もし私が git rm src/MyFile.cs どのバージョンのファイルを削除し、どのバージョンのファイルを残すか、git はどのようにして知るのですか?

どのように解決するのですか?

もし git rm はそのパスのすべてのバージョンをインデックスから削除するので、resolveアクションはどちらのバージョンも残さないことになります。

を使用することができます。 git checkout --ours src/MyFile.cs でリベースの対象となるブランチのバージョンを選択するか、あるいは git checkout --theirs src/MyFile.cs で、リベースの対象となるブランチからバージョンを選択します。

ブレンドしたい場合は、マージツールを使用するか、手動で編集する必要があります。