次のファイルがあるとしましょう
- マスターで変更
- 機能ブランチで変更
- 機能ブランチで名前が変更されました
マスターから機能ブランチにマージしようとすると、マージが失敗します
CONFLICT (変更/削除): X は HEAD で削除され、origin/master で変更されました。ツリーに残された X のバージョン元/マスター。
競合があることは理解していますが、変更をマージして競合マーカーをファイルに配置しようとしないのはなぜですか? 以前の回答は、そうすべきであることを暗示しているようです。私が得たのは、ファイルの 2 つの異なるバージョンだけです。違いを手動で把握し、マスター バージョンから自分のバージョンに 1 行ずつ変更を移植する必要があります。
再現する手順:
git init
touch a
git add a
git commit -m 'initial import'
git checkout -b feature1
echo feature1 > a
git add a
git commit -m feature1
git mv a b
git commit -m feature1
git checkout master
echo bugfix > a
git add a
git commit -m bugfix
git checkout feature1
git merge master