M
がマスタの場合、A1
とA2
は、新しいブランチのコミットですA
オフM
です。将来のバージョンから過去のバージョンにgitパッチを適用するにはどうすればよいですか?
A2
はA1
A1
に依存A2
の変更はありませんで何が起こったのかを考慮せずに、私はB
への適用に興味の変化は、(意味論的に言えば、私は気にしないでA1
は限りB
として懸念している。
A1 - A2
/
M
\
B
私は、私の目には、右に見えるパッチを作ることができます。それが唯一のA2
の変更を保持しているように見えます。
3方向で適用すると、A1
のものにマージしようとします。
私が3つの方法なしで適用すると、正常に見えるマージ競合でさえ修正することさえできません。
チェリーピッキングもお手伝いしません。 M
で
# The Setup
mkdir git-problem && cd git-problem
git init
echo Original > a.txt
git add a.txt
git commit -am "initial"
# Branch A
git checkout -b branch-A
echo A1 >> a.txt
git commit -am "A1 Changes"
echo A2 >> a.txt
git commit -am "A2 Changes, the one's I want in branch-B"
git format-patch HEAD~
# Branch B
git checkout master
git checkout -b branch-B
# Tries to bring in both commits
# git cherry-pick d012465 # the latest commit on branch-A
# git am --3way -- 0001-A2-Changes-the-one-s-I-want-in-branch-B.patch
# git am -- 0001-A2-Changes-the-one-s-I-want-in-branch-B.patch
、a.txt
a.txt
はB
で
Original
A1
A2
で、A2
で
Original
ですが、私はそれをしたいと思い:
Original
A2
手順を正確に実行すると、チェリーピックでマージ競合が発生します。珍しい設定がありますか?ギタリストでは、例えば? 'git check-attr -a a.txt'とは何ですか? cherrypickの出力はどうですか? – max630