2013-11-02 72 views
0

所以我在git上有兩個分支:developrelease。直到現在我一直在使用develop分支。我只是提交了develop分支,我想在release分支中提供。我該怎麼做?我在這裏有點困惑。正確地在分支之間切換

1)是否當我做 git checkout -b release

2)要切換回develop分支,我可以做一個結帳這個自動發生的,對不對?還是我需要做一個合併?

回答

2

您有幾個選項可以讓一個分支上的提交可用於另一個分支 - 您選擇哪一個取決於您希望以後如何查看歷史記錄。

  1. 一個合併將創建的release分支有兩個父提交:的develop尖端和release前尖。 release然後將具有從developrelease的所有工作。要合併developrelease,請確保您有乾淨的工作副本,並運行git checkout release,然後運行git merge develop
  2. 您還可以cherry-pick個人提交的developrelease之上。 Cherry-picking在release上創建了一個新的提交,它執行您提交的名稱所做的確切更改。如果你在develop上完成了一大堆工作,這很有用,但你只需要帶上一兩件事情。要挑選,請查看git log,複製名稱爲所需提交的sha散列,然後運行git checkout release,然後運行git cherry-pick <commit hash>
  3. 如果您需要將一些大範圍的提交從一個提交到另一個,可以使用rebase --and。這有點高級,但如果你好奇,你可以read about it

要回答你的後續問題:

  1. 都能跟得上! git checkout的一般用途是使你的工作副本看起來像一個你名字爲的東西。當您運行git checkout release時,git會將工作副本中的實際文件更改爲上次提交到release的狀態。結帳不會更改現有分支。 (另外,你不需要-b如果release已經存在; checkout -b是一個方便的快捷方式創建並一次性檢出一個分支)

  2. 按照同樣的思路,切換回,所有你需要再做git checkout develop

+0

感謝您的詳細解釋!很有幫助:) – rgamber

0

如果你想從一個分支到另一個分支的變化,你必須做一個合併。

+0

或者是櫻桃樹或者類似的手術,是的。 – torek