我有项目共享多个版本的目录,我尝试创建简单的脚本,为每个模块检查正确的版本,配置是单独的文件(2.6是其中之一)。
配置文件如下:
<module_name1> <branch_name1>
<module_name2> <branch_name2>
脚本:
被修改
while read path branch;
do
cd $path
echo
echo $path
echo "$branch"
git checkout "$branch"
cd ..
done < 2.6
不幸的是,git似乎没有识别以这种方式传递的分支名称导致错误:
&#39;与git已知的任何文件都不匹配。
我想了解如何修复此类脚本或以其他方式创建脚本?
(或者可能是一些可配置的群发检查工具?......)
编辑:
经过一些测试,似乎git认为&#39; $ branch&#39;作为一个空字符串(我之前用echo回复了它的内容)
答案 0 :(得分:0)
您应该查看git submodules。
答案 1 :(得分:0)
使用read
将输入行拆分为多个变量的能力:
while read path branch; do
cd "$path"
git checkout "$branch"
...
答案 2 :(得分:0)
显然从单独的文件中读取变量,通过添加carriege返回来破坏它们,因此它在修剪后开始工作。
(它更糟糕,它已经损坏了回声输出,我只是在将结果传输到另一个文件而不是控制台之后才找到它)
FIX: branch = $(echo“$ {branch // [$'\ t \ r \ n']}”)