GIT 文件位置可能会通过 GIT PULL 或分支的更改而更改。 如何跟踪文件位置变化? 我正在使用 jGIT,这是一个用于 GIT 的 Eclipse 库。 目前我做的是:
final PullCommand pullCommand = git.pull().setRemote("origin").setRemoteBranchName(git.getRepository().getBranch());
值得记住的是,Git(以及 JGit)跟踪内容,而不是文件。当文件被移动或重命名时,Git 只会看到使用新名称添加了一个文件,并使用旧名称删除了一个文件。
使用
DiffFormatter::scan
可以获得在存储库的两个状态(例如两次提交,或一次提交和工作目录)之间更改的文件列表。该方法返回一个 DiffEntry
列表,每个描述一个添加、删除或修改的文件。
可以使用
DiffFormatter
或 FollowFilter
配置 setDetectRenames(true)
以使用启发式方法来检测重命名。查看生成的 DiffEntry
的 changeType
或比较 oldPath
和 newPath
。
如果您打算跟踪工作目录的更改,您可以考虑使用文件观察器。这还包括在您的应用程序之外进行的更改。