如何在JGit中识别文件夹重命名

时间:2013-11-28 00:47:54

标签: git directory jgit mv

git mv foldera folderb,导致foldera中的所有文件都移至folderb。使用DiffFormatter我可以看到每个文件的DiffEntry个对象。

然而,这并不能说明整个故事。具体来说,从DiffEntry对象我无法确定foldera是否已重命名为folderb,或者在提交之前是否已存在folderb并且单独移动了2个文件在提交中,让foldera中的文件少了2个。是否有不同的类来检查提交以获取此信息?

1 个答案:

答案 0 :(得分:3)

Git跟踪文件中的更改,而不是文件夹。如果您刚刚创建了folderb,git将无法识别它(即使您git add folderb)。如果您将所有文件从foldera移至folderb,则git不会知道foldera仍然存在。

换句话说,除非有一些插件跟踪git存储库中的文件夹,否则你无法区分这两种情况 - 因为存储库中不存在该信息。 Git不知道有folderafolderb - 所有它知道的是,路径中有一些foldera/folderb/的文件。