git如何清理本地多余的分支

前言

对同一个项目进行持续迭代半年或者一年以上,本地以及远端的分支数量如果不及时清理,都会变得很多。在查看以及切换分支时,都会变得很不方便。

有时候,为了合并远端 develop 分支的代码,我们可能会有这样的操作。先执行 Git checkout develop 切换到本地的 develop 分支,然后直接执行 git pull 命令。轻松将远端 develop 分支的最新代码合并到了本地的 develop

真开心,能用一行命令解决的事,咱绝不多敲几个字符。

git如何清理本地多余的分支

一顿帅气的 Coding 后,把手上的代码提交了。好了,我们切换到另外一个分支,继续去做另外一个需求。

来吧!打开 terminal 或者 git bash 控制台。cd projectDir 进入对应的项目文件夹。切换到对应的分支,执行 git checkout feature/,此时,会玩的朋友都知道,可以按 Tab 键进行自动补全。

注意:这里的 feature/ 是因为我的分支名前面都统一添加了 feature/ 字符串。

什么情况?为什么按了 Tab 后,会提示有我几十个待选分支。

git如何清理本地多余的分支
模糊匹配分支数

好吧~~~

那我多输入一些,来点更加精确的输入吧。果然,多输入了一些后,再按 Tab,完美的把我要切换的分支切过来了。

有的同学喜欢的编辑器中,以 VSCode 举例,安装了对应的 git 插件(比如 gitLens插件),就可以直接在 VSCode 中切换分支了。但是这样还是有很多不需要的分支,要让我们多找一会儿才能切换。

git如何清理本地多余的分支
vscode中切换分支

此时,心里没那么开心了,每次切换都要多输入几个字符才能匹配出来,有没有更加简便的方式呢?

具体操作

查看所有分支

执行 git branch -a 查看所有分支

git如何清理本地多余的分支
所有的分支

可以看到,上面白色文字的就是本地的分支。这部分分支可以直接通过输入命令 git branch 查看到。还有一部分的分支名是红色的,这些分支,就是我们最初直接执行 git pull 拉下来的远端的分支。这些红色的分支,大多数情况下,在我们本地都是不需要用到的。但是它在我们切换分支时,会很影响我们查找我们需要的分支。

删除多余分支

本地自己创建的分支,我们可以执行 git branch -d $branchName 来一个一个地删除。

但是,这样删除比较慢,我们可以批量删除分支吗?

有,当然有~

执行:git branch | grep 'qa' | xargs git branch -d

这行命令表示,删除本地所有有包含 qa 字符的分支。

git如何清理本地多余的分支
批量删除分支

再次执行 git branch 命令,就可以看到,本地所有包含 qa 字符串的分支都被清理干净了。

距离快速切换我们的分支又近了一步,哈哈哈哈,小开心~~~

那存放于本地的远端分支,也就是下图中,红色的那些分支也可以这样删除吗?

git如何清理本地多余的分支
所有的分支

抱歉,这样,还真的不行!!!

如果一定要执行,那这个错误,就在前面等着我们。

git如何清理本地多余的分支
删除远端分支错误

那我们该怎么办呀?

别担心,今天想分享的知识,在这里才正式开始。

删除存放于本地的远端分支

方法一

用命令行工具(terminal 或者 git bash 或者 item2)进入对应的项目。

执行 cd .git 命令

进入到 .git 文件夹下面。

为什么要这样操作呢?我在 windows 电脑中,本来是想去 我的电脑 中直接查看它的,但是就算把显示隐藏文件夹打开,也仍然没有找到它的入口,所以想到,直接使用命令的方式,直接进入。

然后 windows 电脑下执行 explorer .mac 电脑下执行 open . 命令,在文件管理器中打开当前文件夹。

删除 refs/remotes/ 文件夹下面的所有文件。

这时,我们再执行 git branch -a 命令,就可以看到远端的分支被删除了。我们再执行 git checkout feature/Tab,自动提示的分支就少了很多了。或者在 VSCode 中切换分支,也会发现少了许多用不到的分支了。

方法二

打开 VSCode,如果在左边目录中,找到 .git 文件夹,如果没有找到 .git 文件夹,点击 file > preferences > Settings,找到 Text Editor 下面的 Files

git如何清理本地多余的分支

删除 VSCode.git 文件夹的隐藏。

.git 文件夹下面找到 refs/remotes 文件夹,删掉它下面的 origin 文件夹。

git如何清理本地多余的分支

这时,再执行 git branch -a。也可以看到远端的分支被删除了。不管是通过命令方式切换分支还是在 VSCode 中使用工具切换分支。都会简洁干净很多。切换起来也会更加快速了。

总结

  • 开发时间久了后,分支会慢慢的积累,一直留在那里,过多的分支会影响查找和切换分支的速度。这个在一个项目中同时开发多个需求时,影响特别明显。所以养成定期删除无用分支习惯,可以很好的让我们避免因为切换分支时带来的时间消耗,提升我们的开发效率。
  • 在拉取远端分支时,尽量指定要拉取远端的哪个分支。指明要拉取的分支名,可以避免其它不需要的分支也被拉取下来,造成本地分支污染。
  • 如果想切换到远端的另外一个分支。可以先执行 git fetch origin branchName,然后再执行 git checkout branchName切换过去。
  • 直接执行 git pull origin branchName,它其实是将 git fetch origin branchNamegit merge branchName 两步合并执行了。意思是,将远端的某个分支,拉取并合并到本地的现在所在的分支。


git如何清理本地多余的分支


原文始发于微信公众号(前端学习总结):git如何清理本地多余的分支

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83188.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!