JGit:git submodule foreach命令

时间:2014-01-24 07:54:03

标签: git git-submodules jgit

我知道在JGit中对git子模块的支持是有限的,但仍然想知道如何实现这一点:

git submodule foreach git checkout <branchName>

和使用JGit的类似命令。

或者Git还有其他更好的基于Java的API吗?

1 个答案:

答案 0 :(得分:3)

在JGit中,有SubmoduleWalk可能有助于解决您的问题。要在所有子模块上运行checkout命令,您可以在这些行中写一些内容:

SubmoduleWalk walk = SubmoduleWalk.forIndex( repository );
while( walk.next() ) {
  Repository submoduleRepository = walk.getRepository();
  Git.wrap( submoduleRepository ).checkout().call();
  submoduleRepository.close();
}
walk.release();