2011-11-02 78 views
5

我以爲我的git漂亮了,但是我對這個問題有點阻礙。Github:將一個新的開發分支插入我的叉

下面是圖片:我將一個項目的'develop'分支分成了我自己的github回購,克隆到本地,創建了git-flow功能,做了一些東西併發布。一切都好。

與此同時,原來的項目變成了一個新的開發分支(稱之爲'develop2'),所以我發佈的功能無法被引入到主項目中。

所以 - 建議 - 我創建了一個本地'develop2'分支,刪除了我的本地'develop'分支,從主項目回購中拉出'develop2',然後將其與我的本地功能合併。一切正常,除... 我個人的github回購仍然有舊的'開發'分支和基於該分支的功能。

所以,我的問題是我現在要做什麼? 幾個選項我已考慮:

  1. 刪除我在從主體工程github上,叉「develop2」全部「發展」叉,然後將這個我的本地回購,合併,然後再次發佈我的特點併發出拉請求。 (不確定性壽:我需要克隆,而不是拉新的分支所以它有正確的由來。)
  2. 刪除「發展」的起源和特性分支,推新develop2分支,等等
  3. 力推我的「develop2」分支起源發展,然後將其重命名,並做相同的特徵..

如果出現任何錯誤,雖然我可能卡住具有重做了一大堆東西哪至少可以說是無聊的。 任何意見從那裏的專家?

回答

3

你絕對不需要重做東西 - Git有很好的處理這類問題的能力。首先,GitHub上的叉子是整個倉庫,所以刪除你的「開發」叉「並不意味着什麼 - 你只需要將上游develop2變化帶入你的分支。我建議添加一個名爲upstream的遠程設備,以便從我分叉的存儲庫中輕鬆獲取更改。

現在假設您添加了upstreamgit fetch應該將upstream/develop2下拉到您的本地存儲庫中。我會撤銷你的合併(可能是git reset --hard develop~),從那裏創建一個develop2分支以保持一致性,然後將你的本地develop2更改分配到upstream/develop2git rebase --onto upstream/develop2 upstream/develop develop

前:

   X---Y---Z upstream/develop2 
      /
      |   H---I---J develop, develop2 
      |  /
      | E---F---G upstream/develop 
      |/ 
A---B---C---D 

後:

     H'--I'--J' develop2 
        /
       X---Y---Z upstream/develop2 
      /
      |   H---I---J develop 
      |  /
      | E---F---G upstream/develop 
      |/ 
A---B---C---D 
+0

謝謝 - 是的,這是有道理的。但我想我已經找到答案了。讓我的github回購符合我的本地。基本上我的選擇2以上,但需要一個小github細節。頁面在這裏:http://matthew-brett.github.com/pydagogue/gh_delete_master.html 總結: 1. git push origin develop2(新開發分支到github回購) 2。轉到github回購,點擊'管理員',設置默認分支開發2 3.然後可以刪除舊的開發分支即。 git push origin:develop 4.然後像往常一樣推送功能。 – user1025174

相關問題