我創建了一個分支來嘗試一種不同的方法,並且它工作,所以我想將「Farmcrops」分支合併到「Master」中以保留這些更改,但繼續「Farmcrops」分支以探索另一種可能性。這樣,如果這個最新的變化不起作用,我可以回到「主」,這將包括第一輪變更。如何將分支合併到主分支中,但繼續在分支上工作?
我該怎麼做?
我創建了一個分支來嘗試一種不同的方法,並且它工作,所以我想將「Farmcrops」分支合併到「Master」中以保留這些更改,但繼續「Farmcrops」分支以探索另一種可能性。這樣,如果這個最新的變化不起作用,我可以回到「主」,這將包括第一輪變更。如何將分支合併到主分支中,但繼續在分支上工作?
我該怎麼做?
下面是這個過程中你正在尋找:
git checkout master
git merge Farmcrops
git push origin master
git branch -d Farmcrops
git checkout master
git checkout -b Farmcrops
Farmcrops
您提交...分行只是指針,它很容易創建/刪除一個分支,如果你的分支Farmcrops
不會在遠程存儲庫上推送,它絕對沒有依賴關係。您可以在合併後將其刪除,並從主服務器重新創建它。
希望這會幫助你。
儘管如此,您不應該將'Farmcrops'直接合併到'master'中。先將'master'合併到'Farmcrops'中,檢查一切正常,然後纔將'Farmcrops'合併到'master'中。 – Jubobs 2014-09-24 19:31:06
@Jubobs感謝你的建議,我從來沒有嘗試過這種方法。但是合併行爲是在本地完成的,你有足夠的時間來驗證新版本,測試它並確保一切正常,不是嗎?這似乎是一個無用的步驟,先按照您的建議進行第一次合併 – 2014-09-24 19:34:47
即使所有東西都是本地的,第一次合併也是有用的,因爲它促進了隔離:它爲您節省了在master上創建「壞」提交的風險,必須將'master'重置爲它的父對象之一,或者還原'master'上的最後一個提交。這是一個安全網。 – Jubobs 2014-09-24 19:36:39
在下面的鏈接中,介紹瞭如何創建修補程序分支,進行更改並將其合併到主服務器。合併後,只有區別,修復分支被刪除。
只需使用Farmcrops作爲分支名稱,合併後不要刪除分支。
GIT-SCM: Basic Branching and Merging
步驟1中創建一個分支,然後進行更改
$ git checkout Farmcrops
Switched to a new branch 'Farmcrops'
$ vim index.html
$ git commit -a -m 'fix the broken email address'
[Farmcrops 3a0874c] fix the broken email address
1 files changed, 1 deletion(-)
[步驟2然後,回到主分支和合並
$ git checkout master
$ git merge Farmcrops
Updating f42c576..3a0874c
Fast-forward
README | 1 -
1 file changed, 1 deletion(-)
而且,如果你想在同一分支上進行更多的更改,再次應用[步驟1]。
當您完成更改後再次應用[步驟2]。
根據需要按照以下步驟操作。
一旦你用這個分支完成你的工作,你可以刪除它。
$ git branch -d Farmcrops
Deleted branch Farmcrops (was 3a0874c).
NOT:不要合併的,我建議重訂GIT-SCM: Rebase
git rebase Farmcrops
如果我理解正確的,你從
-- o -- o -- o [master]
\
o -- o [Farmcrops]
開始你不應該直接合併到Farmcrops
master
,因爲你運行的,按照慣例,應該是打破了代碼master
的風險,更穩定。相反,檢查出Farmcrops
併合並master
。
git checkout Farmcrops
git merge master
然後你會得到
-- o -- o -- o [master]
\ \
o -- o -- o [HEAD -> Farmcrops]
運行一些測試;確保一切按預期工作。然後檢查master
和合並Farmcrops
進去:
git checkout master
git merge Farmcrops
您的回購,然後將這個樣子:
-- o -- o -- o
\ \
o -- o -- o [HEAD -> master,Farmcrops]
現在,再次檢查了Farmcrops
,繼續實驗,就更加的提交,等等。 ..
-- o -- o -- o
\ \
o -- o -- o [master]
\
o -- o -- o [HEAD -> Farmcrops]
如果你總是可以依傍master
(現在包含「第一輪的變化」,因爲你把它)你關於Farmcrops
的新實驗並沒有那麼好。
關於此的視覺效果非常有幫助。感謝您抽出寶貴時間。 – 2018-02-15 01:09:14
新的探索仍然基於我對cropcarms改變農作物,所以我繼續使用該分支是有意義的,但如果它更容易在git中合併和分支,我可以做到這一點。 – jgravois 2014-09-24 19:21:56