我知道JGit对于git子模块的支持有限,但仍然想知道如何实现以下操作:
git submodule foreach git checkout <branchName>
以及类似的命令使用JGit。
或者是否有其他更好的基于Java的Git API?
我知道JGit对于git子模块的支持有限,但仍然想知道如何实现以下操作:
git submodule foreach git checkout <branchName>
以及类似的命令使用JGit。
或者是否有其他更好的基于Java的Git API?
SubmoduleWalk
的函数可以帮助你解决问题。如果要在所有子模块上运行检出命令,只需按以下方式编写:
try (SubmoduleWalk walk = SubmoduleWalk.forIndex(repository)) {
while(walk.next()) {
try (Repository submoduleRepository = walk.getRepository()) {
Git.wrap(submoduleRepository).checkout().call();
}
}
}
.gitsubmodules
文件中读取(例如使用StoredConfig
),并将分支名称传递给CheckoutCommand
。关于这个话题,我在这篇帖子中找到了有用的信息,它解释了在本地git中该怎么做。 - Rüdiger Herrmann