以下M
是主人,A1
和A2
是在新分店A
關閉M
。如何將未來版本的git補丁應用到過去的版本?
A2
是我感興趣的申請B
的變化,而不考慮在A1
那裏發生了什麼不是A2
依賴於A1
(語義上講任何改變,我不關心A1
儘可能B
關注。
A1 - A2
/
M
\
B
我可以做一個補丁,我的眼睛,期待權。看起來這僅持有的A2
變化。
當我以3種方式應用它時,它會嘗試合併A1
的東西。
如果我沒有3種方式申請,我不能讓它工作,甚至沒有一個正常的合併衝突來解決。
櫻桃採摘也沒有幫助。
# 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
在M
,a.txt
是
Original
在A2
,a.txt
是
Original
A1
A2
在B
,我想使它:
Original
A2
確實你的步驟,我在櫻桃挑選合併衝突。你有什麼不尋常的設置。在gitattributes,例如? 'git check-attr -a a.txt'說。櫻桃的輸出是什麼? – max630