在 Git 中刪除已合併的分支

Reema Faysal 2023年1月30日
  1. 檢視 Git 中的現有分支
  2. 在 Git 中一次刪除多個本地合併分支
  3. 在 Git 中刪除本地和遠端合併的分支
在 Git 中刪除已合併的分支

在 Git 中,分支對於與許多團隊成員一起工作是必要的。分支代表過去在 Git 中所做更改的快照。

當我們在 Git 中建立一個新分支時,它意味著包含我們為修復錯誤或新增新功能所做的更改。

通過 Git,我們可以輕鬆地管理分支,無論是建立分支還是使用命令刪除分支。刪除分支在 Git 中也不例外。

許多開發人員在通過刪除合併的分支來清理他們的 Git 倉庫時感到滿意,並且他們很容易對現有分支進行新的開發。

讓我們看看在 Git 中使用以下命令刪除已經合併的分支。

檢視 Git 中的現有分支

在我們開始刪除倉庫中的現有分支之前,讓我們通過執行以下命令來檢視所有分支列表:

git branch

要檢視所有遠端分支的列表,我們將執行以下命令:

git branch -r

要檢視所有分支(本地和遠端)的列表,我們將執行以下命令:

git branch -a

作為這些命令的結果,我們將看到一個分支列表。並非我們可以看到的所有分支都應該被刪除。我們的目標是清理已經合併的分支。

要檢視所有本地合併分支的列表,我們將執行以下命令:

git branch --merged

要檢視所有本地未合併分支的列表,我們將執行以下命令:

git branch --no-merged

在 Git 中一次刪除多個本地合併分支

一次刪除一個分支更耗時,而且不是正確的工作。當然,我們是開發人員,當我們可以使用一些命令將其機器人化時,我們不喜歡做重複性的任務。

正如我們在合併分支列表中看到的那樣,將來可能有一些我們不想刪除的分支。所以為了這個目的,我們將在命令中新增一些引數來刪除所有合併的分支,以排除我們不想刪除的分支。

以下命令將不包括 master 分支,以及其中包含 dev 的任何內容:

git branch --merged| egrep -v "(^\*|master|main|dev)"

如果我們想跳過任何其他分支,我們將新增名稱如下:

git branch --merged| egrep -v "(^\*|master|main|dev|skip_branch_name)"

現在,假設我們要刪除過去已經合併到當前已簽出的倉庫分支中的倉庫的現有本地分支。在這種情況下,我們將執行以下命令:

git branch --merged | grep -i -v -E "master|dev"| xargs git branch -d

在 Git 中刪除本地和遠端合併的分支

要刪除合併的本地分支,我們將執行帶有選項 -dgit branch 命令,如下所述。

git branch -d <branch-name>

如果本地分支沒有合併,那麼我們將執行以下命令:

git branch -D <branch-name>

如果我們想從遠端刪除它,我們將執行帶有選項 --deletegit push 命令(這裡,遠端的名稱是 origin,預設情況下):

git push --delete origin <branch-name>

或者,我們也可以使用以下命令:

git push origin :<branch-name>

從遠端刪除分支後,我們將使用以下命令修剪以消除遠端跟蹤分支:

git remote prune origin

單獨地,我們還可以使用以下命令修剪遠端跟蹤分支:

git branch -dr <branch-name>

相關文章 - Git Merge