Windows下的Git bash

时间:2017-05-03 17:52:58

标签: windows git bash shell

我正在疯狂,同时尝试编写一个配套脚本,以帮助我的团队中的开发人员查找master分支中的更改。

我的目标是创建一个bahs / sh脚本,在开发者计算机上寻找 ALL git repos,检查它们是否与某个客户端及其相关,请自动更新到master分支并提醒开发人员,在打包部署工作时,他应该了解这些更改。

这是我到目前为止所得到的:

find /c -type d -name .git -exec cygpath -U {} \; 2>/dev/null | sed 's@ @\\\\ @g' | while read eachGit
do
    cd \""$eachGit"/..\";  ##This line is failing
    pwd;
    for eachBranch in $(git branch --no-merged master)
    do
        #do some stuff for each Branch (which already works if I cd manually)
    done;
done;

当我尝试执行cd命令时,它会说:

bash: cd: "/c/Users/MyUser/.SomeSw/subDir/.git/..": No such file or directory
~
bash: cd: "/c/Users/MyUser/my\ repo\ folder/some\ project/.git/..": No such file or directory
~

如果我从错误消息中复制目录并尝试cd到它,它可以正常工作

我正在从正常的git bash运行它,虽然我的计划是在它准备好后立即从Windows任务调度程序运行它

1 个答案:

答案 0 :(得分:0)

正如@torek所说,我误解了如何引用变量。

以下鳕鱼工作

find /c -type d -name .git -exec cygpath -U {} \; 2>/dev/null | while read eachGit
do
    cd "${eachGit}/..";  ##This line is failing
    pwd;
    for eachBranch in $(git branch --no-merged master)
    do
        #do some stuff for each Branch (which already works if I cd manually)
    done;
done;

我很确定之前我曾使用过与之密切相关的东西,但有些方向错了。