[英]JGit sparse checkout keeps adding files
在 Java 中,我正在使用JGit使用远程存储库执行一些操作。 但是,当我在版本之间按顺序进行稀疏结帐时:
checkout.
setCreateBranch(false).
setName(tag).
addPath("server/scripts/").
setStartPoint(tag);
它保留最后一个结帐文件并添加新文件。 只有当目录中的文件名不同时才会发生这种情况。 以这种方式使用 checkout 命令时如何避免这种情况?
我想删除正在结帐的文件夹内的文件(在这种情况下是脚本),但是我不知道当“下载”的文件具有相同名称时是否会带来冲突。
首先请注意setCreateBranch()
默认为 false ,因此无需显式调用setCreateBranch( false )
。
此外,您不能混合使用addPath()
和setName()
addPath()
的 JavaDoc 说:
如果设置了此选项,则既不考虑 setCreateBranch(boolean) 也不考虑 setName(String) 选项。 换句话说,这些选项是排他的。
但是,我不确定您看到的行为是否正确。 有疑问,请使用命令行 git 检查它是否显示相同的结果,如果 JGit 不同,则提交错误报告。
要解决孤立文件,您可以使用StatusCommand
手动删除所有未跟踪的文件:
Status status = git.status().call();
for( String fileName : status.getUntracked() ) {
// delete fileName
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.