在 Java 中,我正在使用 JGit用于对远程存储库执行某些操作。但是,当我依次在版本之间进行稀疏 checkout 时:
checkout.
setCreateBranch(false).
setName(tag).
addPath("server/scripts/").
setStartPoint(tag);
它保留最后一个 checkout 文件并添加新文件。仅当目录内的文件名称不同时才会发生这种情况。以这种方式使用 checkout 命令时如何避免这种情况?
我考虑过删除正在 checkout 的文件夹内的文件(脚本,在本例中),但是我不知道当文件“下载”时是否会带来冲突具有相同的名称。
最佳答案
首先请注意,setCreateBranch()
默认情况下为 false,因此无需显式调用 setCreateBranch( false )
。
此外,您不能混合使用 addPath()
和 setName()
addPath()
的 JavaDoc 说:
If this option is set, neither the setCreateBranch(boolean) nor setName(String) option is considered. In other words, these options are exclusive.
但是,我不确定您看到的行为是否正确。如有疑问,请检查命令行 git 以查看它是否显示相同的结果和 file a bug report如果 JGit 不同。
要解决孤立文件问题,您可以使用 StatusCommand
手动删除所有未跟踪的文件:
Status status = git.status().call();
for( String fileName : status.getUntracked() ) {
// delete fileName
}
关于java - JGit稀疏 checkout 不断添加文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36406725/