1. 程式人生 > 其它 >idea中git分支、合併與使用

idea中git分支、合併與使用

1.分支的新建與合併使用場景介紹

  讓我們來看一個簡單的分支新建與分支合併的例子,實際工作中你可能會用到類似的工作流。 你將經歷如下步驟:

  1. 開發某個網站。

  2. 為實現某個新的需求、問題(#53問題),建立一個分支(名為:iss53)。

  3. 在這個分支上開展工作。

  正在此時,你突然接到一個電話說有個很嚴重的問題需要緊急修補。 你將按照如下方式來處理:

  1. 切換到你的線上分支(production branch)。

  2. 為這個緊急任務新建一個分支(名為:hotfix),並在其中修復它。

  3. 在測試通過之後,切換回線上分支(名為:master),然後合併這個修補分支,最後將改動推送到線上分支,並刪除hotfix分支。

  4. 切換回你最初工作的分支(iss53)上,繼續工作。

  5. iss53問題處理完後,合併到master主幹上,刪除iss53分支。

2、新建分支

  首先,我們假設你正在你的專案上工作,並且已經有一些提交。

  

  這是一個簡單提交歷史

  現在,你已經決定要解決你的公司使用的問題追蹤系統中的 #53 問題。 想要新建一個分支並同時切換到那個分支上,idea上操作如下:

  

  填寫分支名稱

  

  在iss53分支上開發,如下

  

  將分支推送到遠端倉庫

  

  點選push推送到遠端倉庫

  

  在遠端倉庫檢視是否有iss53分支

  

  分支的建立與提交完成!

3、開發iss53的過程中新建分支(hotfix)解決線上問題後,並刪除該分支

  分支隨著工作的進展向前推進

  現在你接到那個電話,有個緊急問題等待你來解決。 有了 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

  

4、回到分支iss53上繼續工作,工作完後合併到master,並刪除iss53分支

  回到iss53分支上

  

  當前git分支結構如下圖:

  

  繼續在分支iss53上寫程式碼

  

  iss53開發完成,提交到遠端分支(同之前操作一樣,圖略);

  切換到master分支(同之前操作一樣,圖略);

  將iss53分支合併到master分支上(同之前操作一樣,圖略),此時的分支結構圖如下:

  

  刪除本地iss53分支(同之前操作一樣,圖略);

  刪除遠端iss53分支(同之前操作一樣,圖略);

  完美!

圖文理解不到位,二麻二麻的,直接視訊學習:視訊學習

轉自:https://www.cnblogs.com/wfd360/p/10891314.html