我正在疯狂,同时尝试编写一个配套脚本,以帮助我的团队中的开发人员查找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任务调度程序运行它
答案 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;
我很确定之前我曾使用过与之密切相关的东西,但有些方向错了。