0
我分叉了分支A並創建了B.現在,A已經被其他人更新了,我想將這些提交交給我的B叉,這樣我就可以確保我在那裏做的東西仍然適用於新的內容。更新其主分支上新提交的分支?
我該怎麼做? Git的術語(拉,提取,合併,等等)是非常有直觀,至少在初期:(
我分叉了分支A並創建了B.現在,A已經被其他人更新了,我想將這些提交交給我的B叉,這樣我就可以確保我在那裏做的東西仍然適用於新的內容。更新其主分支上新提交的分支?
我該怎麼做? Git的術語(拉,提取,合併,等等)是非常有直觀,至少在初期:(
我會建議(如果沒有已經的B拉):
你有什麼是分行A
新的演變和可能犯upstream repo完成:
a--a--a (origin/A)
/
a--a--a A
\
b--b--b (B, local branch)
首先確保A
高達最新與上游內容回購:origin/A
:
git checkout A
git pull
這會給你:
a--a--a--a--a--a (A, origin/A)
\
b--b--b (B, local branch)
,那麼你會重訂於B
上的A
頂部做你的本地修改(我想這裏A
has an upstream branch,這意味着it does track origin/A
,您可以與git branch -avvv
檢查)
git checkout B
git rebase A
它給你:
a--a--a--a--a--a (A, origin/A)
\
b'--b'--b' (B, local branch)
請注意,更改B
的歷史記錄,因此如果B
已被推送,則必須push --force origin B
,如果其他人已經開始使用B
,那麼這可能很危險。
見(關於底墊招數):
git rebase
and git push
: non-fast forward, why use?」注: 「叉分支」 不推薦的表達,因爲fork更常用於引用服務器端的克隆回購:請參閱「Git fork is git clone?」。
相反,你會說:「我支A
創造B
」:操作‘分支’(不‘分叉’)。
這個rebase會不會修改A? – Luke
@lukech rebase **不會修改A,它會在A之上重新創建B. – VonC
@lukech爲了更好地解釋rebase操作的性質,我添加了一些模式。 – VonC