java - JGit稀疏 checkout 不断添加文件

标签 java git jgit

在 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/

相关文章:

java - JGit Java Git 库 Unstaging 文件

JavaFX 使用 SwingNode 嵌入 JFileChooser 并获取选定的文件

java - Twitter4j,未知主机异常

java - 如何在 VBox 中增长标签

java - 如何用JGit逆序获取日志?

git - IntelliJ 注释与 git blame

java - 捕获网络驱动程序断开连接问题并处理额外的 Activity

git - 将一个github项目 pull 入另一个github项目

git - 无法推送到 Github,无法生成 sh : No such file or directory

git - 如何 `git submodule add` 现有子存储库?