Bash:Git submodule foreach?

前端之家收集整理的这篇文章主要介绍了Bash:Git submodule foreach?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些别名的子模块foreach’git co master; git up'(co& up分别是checkout& pull –rebase的别名.).

如何添加一个条件,如果子模块名称是Libraries / JSONKit,它会检出名为experimental的分支,而不是master?

传递给git子模块的脚本运行时,它的工作目录设置在给定子模块的顶部…所以你可以简单地看看pwd,看看你是否在你的特定子模块中.但是,如果您花一些时间阅读git子模块文档,结果会变得更加容易:
foreach
    Evaluates an arbitrary shell command in each checked out submodule. The 
    command has access to the variables $name,$path,$sha1
    and $toplevel: $name is the name of the relevant submodule section in 
    .gitmodules,$path is the name of the submodule directory
    relative to the superproject,$sha1 is the commit as recorded in the superproject,and $toplevel is the absolute path to the top-level of the superproject.

所以你可以这样做:

git submodule foreach '[ "$path" = "Libraries/JSONKit" ] \
  && branch=experimental \
  || branch=master; git co $branch'

猜你在找的Bash相关文章