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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM