Git - 切換分支



在 Git 中切換分支是一項基本操作,它允許開發人員同時處理專案的不同方面,而不會干擾主程式碼庫。

為什麼要切換分支?

切換分支對於維護乾淨和組織良好的程式碼庫至關重要。以下是一些切換分支變得必要的場景

  • 功能開發: 當您正在開發新功能時,最好在單獨的分支上進行。這使您可以根據需要進行儘可能多的更改,而不會影響主分支中的穩定程式碼。

  • 錯誤修復: 如果在您開發功能時發現了錯誤,您可以切換到一個專門用於修復錯誤的新分支。修復完成後,您可以將其合併回主程式碼庫。

  • 程式碼審查: 在將分支合併到分支之前,通常的做法是審查程式碼。透過將更改保留在單獨的分支上,您可以確保只有經過審查和批准的程式碼才能合併。

  • 實驗: 如果您不確定特定方法或需要測試某些內容,您可以建立一個實驗分支。如果實驗失敗,您可以簡單地刪除該分支,而不會影響主程式碼庫。

如何在 Git 中切換分支

在 Git 中使用git checkout命令切換到現有分支。此命令會更新工作目錄中的檔案,以匹配您要切換到的分支的狀態。

讓我們切換到名為feature-x的分支

$ git checkout feature-x

透過執行此命令,feature-x分支由HEAD引用。

feature-x分支指標將在每次在此之後進行修改和提交時,在提交歷史中向前移動。

git branch6

假設我們對檔案進行了一些更改並在feature-x分支上提交了更改

$ vim test.htm  # Make some changes
$ git commit -a -m 'Update feature'
git branch7

透過最近的提交,feature-x分支現在正在向前移動。

使用git checkout返回到master分支

$ git checkout master

此活動實現了兩個目標

  • HEAD指標被移動到指向master分支。

  • 它基本上撤消了對feature-x分支所做的所有更改,方法是將工作目錄中的檔案恢復到指向master分支的快照。

透過在分支之間導航,我們可以獨立地處理各種功能或任務,並保持不同的開發線,直到我們準備好將更改合併回主分支。

git branch8

讓我們演示如何在 Git 中進行更改並擁有不同的歷史記錄

讓我們首先對檔案進行一些編輯,並將它們提交到當前分支(假設是feature-x分支)

$ vim test.htm  # Make some changes
$ git commit -a -m 'Make other changes'

我們已經編輯了檔案test.htm並使用以下命令提交了更改,並更新了訊息。

git branch9

我們的專案歷史現在正在分叉。例如,我們對一個分支(feature-x)進行了更改,切換到它,然後透過切換回我們的主分支(master)進行了更多更改。

由於每組修改都包含在其自己的分支中,因此我們可以在它們之間交替,並在準備好時將它們合併在一起。

我們可以使用git log命令以及各種引數來檢視分叉歷史記錄和分支指標

$ git log --oneline --decorate --graph --all

此命令以簡潔、優雅設計的圖形格式顯示了我們帳戶的提交歷史記錄。

這也指示了所有分支指標(包括HEAD)的位置以及分支分叉的趨勢。

  • 由於 Git 分支只是指向特定提交,因此它們輕量級且易於建立和刪除。

  • 與舊的版本控制系統(由於元資料更新較少而需要複製整個目錄)不同,Git 的分支過程幾乎是即時的。

  • 這種效率鼓勵開發人員頻繁使用分支來有效地組織和管理他們的工作。

廣告