第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > linux 如何查看远程代码分支 linux看git 创建分支 删除本地分支 查看远程分支

linux 如何查看远程代码分支 linux看git 创建分支 删除本地分支 查看远程分支

时间:2020-06-24 01:25:11

相关推荐

linux 如何查看远程代码分支 linux看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的缩写

linux 如何查看远程代码分支 linux看git 创建分支 删除本地分支 查看远程分支 本地分支例子...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。