繁体   English   中英

使用 jgit 仅添加新文件

[英]Add only new files using jgit

我正在学习使用 jgit 将代码推送到 git。 我可以将所有文件推送到 git,但我只想添加新文件或更新对 git 的更改。 请建议:

下面是我的代码:

Git git = Git.open(new File(repoPath)); // connect to github
// I want some code which recognizes the new additions or finds the files changed

git.add().addFilepattern(".").call(); // Want to add only the delta
git.commit().setMessage("commit - 1").call(); 
git.push().setCredentialsProvider(cp).call(); 

未更改的文件永远不会添加到索引中,它们已经包含在索引中。 因此,使用文件模式"." 如果要将所有新的和更改的文件添加到索引中。

您所指的addAll变量用于控制是扫描工作目录中的所有文件还是仅扫描文件模式列表中包含的filepatterns

//add files which have been modified or deleted
git.add().addFilepattern(".").setUpdate(true).call();
Status status = git.status().call();
//add new files
if (!CollectionUtils.isEmpty(status.getUntracked())) {
   AddCommand addCommand = git.add();
   for (String s : status.getUntracked()) {
        addCommand.addFilepattern(s);
   }
   addCommand.call();
}

知道了 !!!

Status status = git.status().call();
System.out.println("Added: " + status.getAdded());
System.out.println("Changed: " + status.getChanged());
System.out.println("Conflicting: " + status.getConflicting());
System.out.println("ConflictingStageState: " + status.getConflictingStageState());
System.out.println("IgnoredNotInIndex: " + status.getIgnoredNotInIndex());
System.out.println("Missing: " + status.getMissing());
System.out.println("Modified: " + status.getModified());
System.out.println("Removed: " + status.getRemoved());
System.out.println("Untracked: " + status.getUntracked());
System.out.println("UntrackedFolders: " + status.getUntrackedFolders());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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