JGIT:git checkout -

时间:2014-05-23 02:04:38

标签: java jgit

我有一个没有暂存的修改文件,我想放弃更改。

在git中它会像

git checkout -- .

如何使用JGit模拟此行为?

提前致谢。

1 个答案:

答案 0 :(得分:1)

要还原单个文件,您可以使用CleanCommand:

Set<String> paths = new HashSet<String>();
paths.add( ... );
git.clean().setPaths( paths ).call();

不幸的是,有bug阻止CleanCommand重置子目录中的文件。

如果我解读&#39;。&#39;在git checkout -- .中正确地想要还原工作目录中的所有更改。 ResetCommand执行此操作:

git.reset().setMode( ResetType.HARD ).call();

这也会使用HEAD中的内容覆盖索引。

如果您不关心索引,您还可以从HEAD提交中读取文件内容,并自己将其写入工作目录。如果您对此感兴趣,请告诉我,我将尝试汇总一个代码片段。