繁体   English   中英

JGit 稀疏结帐不断添加文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM