簡體   English   中英

Git分支致力於開發,同時將一些更改合並到主版本中

[英]Git branches for working on dev while merging some changes into the master

以前,使用SVN,我將擁有一個分支,即我的開發分支,該分支與開發站點上的代碼匹配。 有時,我會在開發分支中進行更改,然后將更改僅合並到主干中,以便將其投入生產。 我想知道如何用git完成類似的工作。

基本上,我希望能夠將分支中的1個或幾個提交合並到主服務器中,而不合並整個分支。

還是應該以其他方式使用git? (我需要立即發布更改,以便在所有更改完成之前無法發布。)我應該使用多個分支嗎? 我可以將一個分支合並到多個其他分支嗎?

您幾乎回答了您的問題:是的,您可以將一個分支合並為多個其他分支。

因此,您要做的就是為此功能/錯誤修正創建一個分支(通用名稱為“ topic”),從您要合並到其中的所有分支的共同祖先開始。 做您的工作,提交它,然后將其合並到所有這些中。

# say version 1.2.3 is a common ancestor, and it's tagged
git checkout -b bugfix v1.2.3

# do some stuff
git add ...
git commit

git checkout master
git merge bugfix

git checkout dev
git merge bugfix
...

這里的關鍵部分是確保從一個共同的祖先開始分支 如果不這樣做,您最終也將合並其他內容。

如果由於某種原因很難找到一個好的共同祖先,則可以退而求其次 這實質上是將提交從一個地方復制到另一個地方。 但是,最好避免使用它,因為這確實意味着您將在歷史記錄中獲得兩次提交的副本。

我更喜歡在git中創建“主題分支”,在該分支中實現其功能。 然后,我可以選擇是否將其合並到開發或生產中,或兩者都合並。 這樣可以繼續進行功能開發,同時仍可以在合理的時間內將錯誤修復應用於生產。

其概念與此處解釋的模型類似: http : //nvie.com/posts/a-successful-git-branching-model/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM