Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在文件中写入git分支_Git_Bash_Ubuntu - Fatal编程技术网

在文件中写入git分支

在文件中写入git分支,git,bash,ubuntu,Git,Bash,Ubuntu,我正在寻找一个Bash脚本,将“所有”git存储库分支写入一个文件,如下所示: 分支=原点/主、原点/主/特征/f1、原点/展开/特征/f2 类似于下面的bash: #!/bin/bash cd /home/jenkins/mfnp git fetch --all git pull git branch -r | awk '/origin\/MFNP/{printf "%s,", $1 }' | head -c -1 >>/home/jenkins/branches.properti

我正在寻找一个Bash脚本,将“所有”git存储库分支写入一个文件,如下所示: 分支=原点/主、原点/主/特征/f1、原点/展开/特征/f2 类似于下面的bash:

#!/bin/bash
cd /home/jenkins/mfnp
git fetch --all
git pull
git branch -r | awk '/origin\/MFNP/{printf "%s,", $1 }' | head -c -1 >>/home/jenkins/branches.properties
echo "" >> /home/jenkins/branches.properties 
但是这个不行。有人能帮我修吗?或者给我这样的解决方案。

这对我很有效:
git branch-r|sed's/^/branchs=/'|sed'/->/d'|tr'\n'','|tr-d'>/home/jenkins/branchs.properties

这可能是一个更优雅的解决方案,但它确实从
git branch-r
命令的输出中删除了换行符和多余的空格。希望能有帮助

编辑:添加的
sed
将删除任何包含“->”的行,因此无论您在运行命令时处理哪个分支,它都应该工作。希望能帮你整理一下


编辑2:done:)

为什么要将它们放在文件中?jenkins使用此文件部署我最喜欢的分支。这些分支将出现在cascade菜单“可由用户选择”中。这非常有效。但它也会将“origin/HEAD->origin/master”写入有问题的文件。这是脚本的输出:branchs=origin/master,origin/master/feature/xxxxx,origin/development/feature/xxxx origin/HEAD->origin/master,origin/development,origin/feature/yyyyyy-86,origin/hotfix/0.1.14,origin/hotfix/0.1.15,origin/hotfix/0.2.1,origin/master,你能不能修改它,使它不会将“origin/HEAD->/master”写入文件。非常感谢。编辑了原始答案,希望能解决问题:)万分感谢。但还是不行。字符串“branchs=”应该在开头。请修改它的生成方式:branchs=origin/HEAD->origin/master,origin/development,origin/feature/UDK_KBI-86,origin/hotfix/0.1.14,origin/hotfix/0.1.15,origin/hotfix/0.2.1,origin/master,