git mv foldera folderb
,导致foldera
中的所有文件都移至folderb
。使用DiffFormatter
我可以看到每个文件的DiffEntry
个对象。
然而,这并不能说明整个故事。具体来说,从DiffEntry
对象我无法确定foldera
是否已重命名为folderb
,或者在提交之前是否已存在folderb
并且单独移动了2个文件在提交中,让foldera
中的文件少了2个。是否有不同的类来检查提交以获取此信息?
答案 0 :(得分:3)
Git跟踪文件中的更改,而不是文件夹。如果您刚刚创建了folderb
,git将无法识别它(即使您git add folderb
)。如果您将所有文件从foldera
移至folderb
,则git不会知道foldera
仍然存在。
换句话说,除非有一些插件跟踪git存储库中的文件夹,否则你无法区分这两种情况 - 因为存储库中不存在该信息。 Git不知道有foldera
和folderb
- 所有它知道的是,路径中有一些foldera/
和folderb/
的文件。