各位好,本人想用一个简单的shell script
来让某目录下的多个submodule,并在其中执行git checkout (commit SHA)
及 git restore .
目前想到的大概是这样,才后会用多个if来找我要的submodule:
for item in /path/to/submodule/*;do
if [${item} == 'name'];then
git restore .
git checkout (commit SHA)
fi
done
然而 if[${item} == 'name'] 这不要怎么写才对
我希望name对应到的是路径最右边的item
先谢谢各位看完问题了,因为很少写shell所不太会问,不清楚的地方我会再补充
不是下 git submodule update 吗?
作者:
lantw44 (#######################)
2023-01-27 18:31:00if [ "${item}" = name ] 所有的空格都不能省略。不过应该不用自己写 for,可以用 git submodule foreach
作者:
drm343 (一卡)
2023-01-27 20:47:00这个我第一个想到的也是 git submodule foreach
会问这个是因为submodule很多,而且每个submodule都会用一个特定的commit,这可能只能用git checkout来做。有时候因为不明原因,某几个submodule的commit会跑掉,要再手动一个个调回很费时
作者:
lantw44 (#######################)
2023-01-28 19:57:00你可以把 if 那段写在给 foreach 执行的 script 里。