我有一个没有暂存的修改文件,我想放弃更改。
在git中它会像
git checkout -- .
如何使用JGit模拟此行为?
提前致谢。
答案 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提交中读取文件内容,并自己将其写入工作目录。如果您对此感兴趣,请告诉我,我将尝试汇总一个代码片段。