讓我們來看乙個簡單的分支新建與分支合併的例子,實際工作中你可能會用到類似的工作流。 你將經歷如下步驟:
開發某個**。
為實現某個新的需求、問題(#53問題),建立乙個分支(名為:iss53)。
在這個分支上開展工作。
正在此時,你突然接到乙個**說有個很嚴重的問題需要緊急修補。 你將按照如下方式來處理:
切換到你的線上分支(production branch)。
為這個緊急任務新建乙個分支(名為:hotfix),並在其中修復它。
在測試通過之後,切換回線上分支(名為:master),然後合併這個修補分支,最後將改動推送到線上分支,並刪除hotfix分支。
切換回你最初工作的分支(iss53)上,繼續工作。
iss53問題處理完後,合併到master主幹上,刪除iss53分支。
首先,我們假設你正在你的專案上工作,並且已經有一些提交。
這是乙個簡單提交歷史
現在,你已經決定要解決你的公司使用的問題追蹤系統中的 #53 問題。 想要新建乙個分支並同時切換到那個分支上,idea上操作如下:
填寫分支名稱
在iss53分支上開發,如下
將分支推送到遠端倉庫
點選push推送到遠端倉庫
在遠端倉庫檢視是否有iss53分支
分支的建立與提交完成!
分支隨著工作的進展向前推進
現在你接到那個**,有個緊急問題等待你來解決。 有了 git 的幫助,你不必把這個緊急問題和iss53
的修改混在一起,
你也不需要花大力氣來還原關於 53# 問題的修改,然後再新增關於這個緊急問題的修改,最後將這個修改提交到線上分支。 你所要做的僅僅是切換回master
分支。
idea上操作如下:
特別注意:在你這麼做之前,要留意你的工作目錄和暫存區裡那些還沒有被提交的修改,它可能會和你即將檢出的分支產生衝突從而阻止 git 切換到該分支。 最好的方法是,在你切換分支之前,保持好乙個幹 淨的狀態。 有一些方法可以繞過這個問題(即,儲存進度(stashing) 和 修補提交(commit amending)),我們會在 儲藏與清理 中看到關於這兩個命令的介紹。
這個時候,你的工作目錄和你在開始 #53 問題之前一模一樣,現在你可以專心修復緊急問題了。
請牢記:當你切換分支的時候,git 會重置你的工作目錄,使其看起來像回到了你在那個分支上最後一次提交的樣子。
git 會自動新增、刪除、修改檔案以確保此時你的工作目錄和這個分支最後一次提交時的樣子一模一樣。
接下來,你要修復這個緊急問題。 讓我們建立乙個針對該緊急問題的分支(hotfix branch),在該分支上工作直到問題解決:
這個時候,git的分支結構圖如下:
基於master
分支的緊急問題分支hotfix上進行**開發,模擬如下:
你可以執行你的測試,確保你的修改是正確的,然後提交**到遠端倉庫,提交到遠端倉庫的操作與剛才提交iss53操作一樣。
當hotfix這個緊急問題的分支開發完成後,將其合併回你的master
分支來部署到線上。 你可以使用idea的git merge
來達到上述目的:
首先切換到master
然後,以master為主線合併hotfix,這個很重要,因為是以master為主,將hotfix的的**合併到master上,不要把順序弄返
現在,最新的修改已經在master
分支所指向的提交快照中,這是你只需要提交master到遠端倉庫(非常重要,千萬別忘記),你可以著手發布該修復了。
此時,git的分支結構圖如下:
搞定,這時候緊急問題已解決,並且順利的合併到了master主線上,接下來我們就應該刪除分支hotfix
刪除本地倉庫分支hotfix
刪除遠端倉庫分支hotfix
回到iss53分支上
當前git分支結構如下圖:
繼續在分支iss53上寫**
iss53開發完成,提交到遠端分支(同之前操作一樣,圖略);
切換到master分支(同之前操作一樣,圖略);
將iss53分支合併到master分支上(同之前操作一樣,圖略),此時的分支結構圖如下:
刪除本地iss53分支(同之前操作一樣,圖略);
刪除遠端iss53分支(同之前操作一樣,圖略);
完美!
Git 使用Rebase合併分支
在開發過程中,可能會出現多個 commit 所涉及的邏輯都是同乙個功能模組,此時,會導致 log tree 非常的混亂,不美觀,因此,我們可以將多個 commit 進行合併,變成一條,這樣,也使得 log tree 會更加的簡潔。首先,先確定的是,我們合併 commit 使用的是 rebase 命令...
git合併分支
應該是基本知識的,但是之前工作很少用develop分支,用的時候也不會負責合併和發布新版本,所以就一直沒有接觸這塊,做自己小東西一點一點嘗試吧,也不敢亂來,怕一不小心把自己 搞沒了.需求 我在github有乙個master分支,本地有乙個develop分支,目前做的修改都在develop上,現在準備...
git合併分支
工作中很多情況下都是並行開發,後開發的模組上線時需要合併先開發完成的 這就用到了git的多分支合併。這裡以分支dev5.0.1 dev5.0.2和主幹master進行講解。合併思路是先將dev5.0.1合併到master,在dev5.0.2合併master 的 最後把 dev5.0.2 推送到遠端版...