Git之刪除本地無用分支

2021-10-08 02:26:34 字數 2528 閱讀 7937

隨著專案迭代越來越久,本地會建立一系列分支,太多了有時候找起來也不方便,就想將一些已經刪除的遠端分支對應的本地分支清理掉 (我們會對gitlab上已經merged的分支定期清理,畢竟圖形化介面操作起來也方便)

清除已刪除遠端分支

git fetch -p
其作用就是如果你通過git fetch 獲取了遠端分支,後面遠端的分支又被刪除了,就可以通過該命令來刪除那麼已經被清除的遠端分支;如果你在獲取遠端分支的時候同時建立了乙個本地分支,那麼該命令只能幫你解除本地分支和遠端分支的關聯性,並不會將本地分支也刪除掉

git remote prune origin
上述命令的效果同git fetch -p那麼想要真正刪除這些煩人的無用本地分支要怎麼做呢?

逐個刪除(最笨)

通過git branch 命令可以檢視所有的本地分支,然後通過git branch -d命令乙個個刪除

git branch 

git branch -d

git branch -d 刪除分支,會在刪除前檢查merge狀態,避免誤刪沒有合併的分支。

git branch -d 是git branch --delete --force的簡寫,它會強制刪除該分支。

如果想要刪除遠端分支以及追蹤分支需使用: git push --origin -delete branch

批量刪除

/d/ideaprojects/my-service (master)

$ git branch --merged |

grep -v "\*"

|grep -v "release"

> d:/branch.txt

/d/ideaprojects/my-service (master)

$ xargs

git branch -d < d:/branch.txt

deleted branch feature_dev2 (was 0e24efa).

通過第乙個命令將所有本地的且已合併到當前分支的分支寫入到branch.txt(排除release分支和當前分支) – 建議在release或者master分支執行

然後根據獲取到的branch執行git branch -d命令刪除

上述操作命令簡單明瞭,還可以根據獲得到的branch.txt自行刪除自己想要保留的分支

可以簡化成如下命令,不過要注意不要刪錯了分支:

git branch --merged |grep -v "\*"

| grep -v "release"

|xargs git branch -d

xargs命令配合|使用,將前一條指令的輸出流向會作為後一條指令的引數輸入。

還可以寫成shell指令碼

#!/bin/bash

branches=

`git branch --merged |

grep -v "\*"

|grep -v "release"` ;

# 獲取分支名

echo

$branches

;for branch in

$branchesdo`

git branch -d $branch`

;echo delete branch $branch

;done

;

c函式
import os

def delete_not_merged_branch()

: result = os.

popen

("git branch --merged"

) git_branches = result.

read()

for git_branch in git_branches.

splitlines()

:if git_branch !=

'* release'

:print

(git_branch)

os.system

('git branch -d '

+ git_branch)

參考資料:

what-does-git-fetch-p-means

remove-tracking-branches-no-longer-on-remote

git刪除本地分支和刪除遠端分支

切換分支的時候命令打錯了,git checkout 後面沒有跟分支名,結果git status,很多delete的檔案,直接冒冷汗,git add commit 之後發現本地與遠端確實是刪除了很多檔案,之前也有過一次,當時是從新換了乙個目錄重新拉 麻煩的很 把情況告訴了同事,給了我建議,刪除這個分支...

Git刪除本地多個分支

如果你本地有很多分支,需要批量刪除本地分支 可以使用如下方法,如果大家覺得不錯,請點贊支援一下。要刪除本地,首先要考慮以下三點 1 列出所有本地分支 2 搜尋目標分支如 所有含有 dev 的分支 3 將搜尋出的結果傳給刪除函式 具體例子如下 1 強制刪除所有分支 慎用,有些本地修改你可能沒有提交 g...

git刪除本地分支命令 Git已刪除分支回退方案

對於已刪除的分支,如果要想回退恢復,具體操作舉例說明一下 假如我們從master切出乙個新的分支 tempbranch,在tempbranch分支上做了一些修改後,最後一次的commit資訊如下 提交完成後,我們將分支切回master,然後將tempbranch分支刪除 git checkout m...