JGit:git 子模块 foreach 命令

yog*_*tes 4 git git-submodules jgit

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

git submodule foreach git checkout <branchName>

以及使用 JGit 的类似命令。

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

Rüd*_*ann 5

JGit 中的一个SubmoduleWalk可能可以帮助您解决问题。要在所有子模块上运行签出命令,您可以按照以下方式编写一些内容:

try (SubmoduleWalk walk = SubmoduleWalk.forIndex(repository)) {
  while(walk.next()) {
    try (Repository submoduleRepository = walk.getRepository()) {
      Git.wrap(submoduleRepository).checkout().call();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)