百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> linux看git 创建分支、删除本地分支、查看远程分支、本地分支例
分享文章到:

linux看git 创建分支、删除本地分支、查看远程分支、本地分支例

发布时间:01/15 来源: 浏览: 关键词:
今天介绍过比较多的关于git分支的一些相关的文章,我们下文来给各位介绍使用命令来实现删除本地分支、查看远程分支、本地分支例子,具体如下。


1 查看远程分支

$ git branch -a
 
* br-2.1.2.2
 
master
 
remotes/origin/HEAD -> origin/master
 
remotes/origin/br-2.1.2.1
 
remotes/origin/br-2.1.2.2
 
remotes/origin/br-2.1.3
 
remotes/origin/master

2 查看本地分支

$ git branch
 
* br-2.1.2.2
 
master

3 创建分支


shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
 
$ git branch test
 
$ git branch
 
* br-2.1.2.2
 
master
 
test

4 切换分支到test


shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
 
$ git branch
 
* br-2.1.2.2
 
master
 
test
 
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
 
$ git checkout test
 
M jingwei-server/src/main/java/com/taobao/jingwei/server/service/cmd/GetCustomerTarCmd.java
 
M jingwei-server/src/main/java/com/taobao/jingwei/server/util/ServerUtil.java
 
Switched to branch 'test'
 
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (test)
 
$ git branch
 
br-2.1.2.2
 
master
 
* test

5 删除本地分支   git branch -d xxxxx


$ git checkout br-2.1.2.2
 
M jingwei-server/src/main/java/com/taobao/jingwei/server/service/cmd/GetCustomerTarCmd.java
 
M jingwei-server/src/main/java/com/taobao/jingwei/server/util/ServerUtil.java
 
Switched to branch 'br-2.1.2.2'
 
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
 
$ git br
 
* br-2.1.2.2
 
master
 
test
 
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
 
$ git br -d test
 
Deleted branch test (was 17d28d9).
 
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (br-2.1.2.2)
 
$ git br
 
* br-2.1.2.2
 
master

6 查看本地和远程分支  -a。前面带*号的代表你当前工作目录所处的分支


shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei (test)
 
$ git branch -a
 
br-2.1.2.2
 
master
 
* test
 
remotes/origin/HEAD -> origin/master
 
remotes/origin/br-2.1.2.1
 
remotes/origin/br-2.1.2.2
 
remotes/origin/br-2.1.3
 
remotes/origin/master


批量删除git分支

初级魔法:

要删除本地,首先要考虑以下三点

列出所有本地分支
搜索目标分支如:所有含有‘dev’的分支
将搜索出的结果传给删除函数
所以我们可以得到:

    git br |grep 'dev' |xargs git br -d
管道

频繁用于命令间的通信,比如此处可以将git br的结果传递给grep 'dev',其用法也是相当简单只要'|'连接两个命令即可 还有类似 ps -ef | grep 'uwsgi'的命令组合查找uwsgi的进城

grep

grep 可以用于在文件或流中查找匹配的结果,如grep 'abc' **/**.py查找当前目录下全部含有'abc'字符串的文件 并打印出结果

xargs

将前命令的执行结果作为参数传递给后一条命令。此处,我们是将所有含'dev'字符的分支名传递给git br -d

高级魔法:

删除远程分支git命令是:git push origin :dev相当于push一个空的分支覆盖远程分支 那么远程能否参考本地删除来做呢?——大体方向是对,不就是获得分支名,传给删除函数执行嘛

   git br -r| grep 'dev' |xargs git push origin :
但执行结果显然和我的预期不符,系统最后执行的命令类似于这样:

  git push origin origin/dev/fix:
显然 xargs 是将参数传到了:的前一位,而不是我们预期的后一位。解决的办法是?

xargs -i {} func  :{}
用 {} 表示传递过来的参数填充的位置 于是我们有了:

git br -r | grep 'dev' | xargs -i {} git push origin :{}

大功告成?——自然没有。系统执行是:git push origin :origin/dev/fix 原来grep出来的结果虽然是我们需要的分支,但它包含了origin,显然git 命令不会那么聪明的识别到 所以我们只能再辛苦点把前面的origin去掉咯。找了蛮久,满足要求的命令有sed 和awk,此处就先试试awk吧

awk

awk可谓上古神器也。其用法,都能写一本书啦……因为语法复杂,花了一点临时学了下。我们的目的很简单删掉origin,下面就看看怎么用牛刀来杀鸡 awk -F '[/]' '/1\/master/ {printf "%s/%s/%s\n", $2,$3,$4}' -F,设定分隔符为/, 匹配所有1/master的分支名(注意转义/),格式化输出origin/1/master/fix 分割后$1就代表origin,$3代表master 以此类推。所以在printf中格式化输出

好绕了那么多圈,现在终于可以把所有的拼在一起,然后痛快删掉远程那二十多个分支了

git br -r |awk -F '[/]' '/1\/master/ {printf "%s/%s/%s\n", $2,$3,$4}' |xargs -I {} git push origin :{}
注:br 是branch的缩写

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有3人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板