2013-07-18 168 views
0

我分叉了分支A並創建了B.現在,A已經被其他人更新了,我想將這些提交交給我的B叉,這樣我就可以確保我在那裏做的東西仍然適用於新的內容。更新其主分支上新提交的分支?

我該怎麼做? Git的術語(拉,提取,合併,等等)是非常有直觀,至少在初期:(

回答

1

我會建議(如果沒有已經的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,那麼這可能很危險。
見(關於底墊招數):


注: 「叉分支」 不推薦的表達,因爲fork更常用於引用服務器端的克隆回購:請參閱「Git fork is git clone?」。

相反,你會說:「我支A創造B」:操作‘分支’(‘分叉’)。

+0

這個rebase會不會修改A? – Luke

+1

@lukech rebase **不會修改A,它會在A之上重新創建B. – VonC

+0

@lukech爲了更好地解釋rebase操作的性質,我添加了一些模式。 – VonC

相關問題