java—如何知道哪些文件已被修改以修复从git提交开始的bug?

bihw5rsg  于 2021-07-11  发布在  Java
关注(0)|答案(2)|浏览(288)

我正在从事一个java项目,我需要了解哪些文件被修改以修复bug。
我正在处理的项目的版本控制是通过git管理的。
到目前为止,我已经能够得到的承诺,是为了修复错误,但从这开始,我如何才能得到文件,已修改?
我可能得跑一趟 diff 在修复错误的提交和另一个提交之间,但是这另一个提交是什么?我可以从提交图上得到它吗?如果是,怎么做?
所有这些都必须在java中完成。。。为了与github交互,我使用 jgit 图书馆。

bjp0bcyl

bjp0bcyl1#

你可以用 git diff--name-only 比较两个提交以检查它们之间的更改的标志。
例如,如果要比较最近5次提交中的更改,可以通过执行以下操作来使用head reference: git diff --name-only HEAD HEAD~5 其中第一个提交引用是最新的。
如果要将特定提交中更改的文件与头提交中更改的文件进行比较,可以执行以下操作: git diff --name-only HEAD 8614c3d70397f03ab504de8d23e8255d52fa3ed1 其中8614c3d70397f03ab504de8d23e8255d52fa3ed1是您的提交哈希示例。

专门用于您的应用程序

由于要检查在一次特定提交中更改的文件,因此可以使用相同的逻辑执行以下操作: git diff --name-only COMMIT_HASH COMMIT_HASH~1 所以如果错误修复提交有散列 8614c3d70397f03ab504de8d23e8255d52fa3ed1 例如,您可以通过执行以下操作来检查此提交中更改的文件: git diff --name-only 8614c3d70397f03ab504de8d23e8255d52fa3ed1 8614c3d70397f03ab504de8d23e8255d52fa3ed1~1

lpwwtiir

lpwwtiir2#

要查看ghat在修订版上修改的文件,可以执行以下操作

git show --name-status some-revision

也可以指定 --name-only 而不是
--name-status git diff 也可以工作,但它主要用于范围,因为如果您想使用diff并且只提供一个修订版作为参数,那么您最终会与当前的工作树进行比较,因此当您想检查由一个修订版修改的文件时,您必须传入2个参数。

相关问题