2016-04-12 188 views
2

我有一個github回購origin其中有兩個分支masternew。我有兩臺工作機器A和B.我首先在B中初始化該回購,而在B中本地分公司正在跟蹤master。然後我創建了一個分支,並在new的A中做了一些提交。Git推送交叉分支,從一個分支獲取提交到另一個

但是,現在我試圖推動我'再次提交'B到new。我該怎麼辦?或者我錯在哪裏?

我是git的新手,我也爲自己閱讀了一些教程。仍然不知道如何或爲什麼。請幫忙。

==========怎麼這個樣子========================

-----------(master)--------------->(new) 
       |      | 
       |      | 
      tracked by B   tracked by A 
       |      | 
       B---->1.some commit  A----> 2.brach and some commit 
       -->3.some commit again 
+0

你說你在創建'master'後創建了'new'分支,所以'new'應該已經包含了B的所有東西。 – Joost

+0

@Joost是的,我又在B中做了一些提交。 –

+0

您的問題_implies_它,但沒有真正提到任何地方。你的繪畫與它相矛盾。儘量保持一致。 – Joost

回答

1

git checkout new && git cherry-pick master && git push

1

如果我很好地理解你想要的是將你的更改從A推到B,那麼在同一個分支中,這是正確的?

Git並不具有一箇中央存儲庫,這樣你就可以從A如果你已經某種中央資料庫,你可以只是把它直接推它B.

,然後在你的其他拉本地機器。

git push origin new 

假設您的中央存儲庫別名是原點。

您也可以將您的工作機器B:

git remote add <new_name> <machine B uri> 

NEW_NAME只是一個識別您的其他本地機器名,所以你可以把它作爲你會做原點,只是改變了命名

git push <new_name> new 

如果有在分支B中新,你將無法直接推其間的任何變化,你需要先拉的變化。

如果你想保持history simpler可以先衍合你的修改:

git pull --rebase <new_name> new 

,然後按更改

git push <new_name> new 

讓我知道,如果它幫助。

+0

它有幫助,謝謝。 –

相關問題