【问题标题】:How to recognize a folder rename in JGit如何在 JGit 中识别文件夹重命名
【发布时间】:2013-12-13 21:15:04
【问题描述】:
git mv foldera folderb,导致foldera 中的所有文件都移动到folderb。使用 DiffFormatter 我可以看到每个文件的 DiffEntry 对象。
但是,这并不能说明全部情况。具体来说,从DiffEntry 对象中,我无法确定foldera 是否已重命名为folderb,或者folderb 在提交之前是否已经存在并且两个文件在提交中单独移动,留下foldera里面少了 2 个文件。是否有不同的类来检查提交以获取此信息?
【问题讨论】:
标签:
git
directory
jgit
mv
【解决方案1】:
Git 跟踪文件中的更改,而不是文件夹。如果你刚刚创建了folderb,git 不会识别它(即使你是git add folderb)。如果您将所有文件从foldera 移动到folderb,git 不会知道foldera 仍然存在。
换句话说,除非有一些插件可以跟踪 git 存储库中的文件夹,否则您无法区分这两种情况 - 因为存储库中不存在该信息。 Git 不知道有 foldera 和 folderb - 它只知道在它们的路径中有一些带有 foldera/ 和 folderb/ 的文件。