Git 查找在指定提交中更改了行的文件

Git 查找在指定提交中更改了行的文件,git,Git,如何查找已从指定提交更改的文件?有一个文件在这些提交过程中发生了更改,但头部仍有这些更改。因此,如果我在一次提交中更改一行,然后在另一次提交中更改同一行,那么该行将不会包含在搜索结果中 例如,有文件f1,f2和提交c1,c2 提交c1对f1和f2 提交c2更改f1,使c1左侧不再有更改(至少更改c1中更改的每一行)。此外,它以保留来自c1的一些更改的方式更改f2(在c1中更改的至少一行未更改) 搜索应返回文件f2,因为它包含已搜索的c1的更改。但是,搜索不应返回f1,因为那里的所有更改都被c2覆

如何查找已从指定提交更改的文件?有一个文件在这些提交过程中发生了更改,但头部仍有这些更改。因此,如果我在一次提交中更改一行,然后在另一次提交中更改同一行,那么该行将不会包含在搜索结果中

例如,有文件
f1
f2
和提交
c1
c2

提交
c1
f1
f2

提交
c2
更改
f1
,使
c1
左侧不再有更改(至少更改
c1
中更改的每一行)。此外,它以保留来自
c1
的一些更改的方式更改
f2
(在
c1
中更改的至少一行未更改)


搜索应返回文件
f2
,因为它包含已搜索的
c1
的更改。但是,搜索不应返回
f1
,因为那里的所有更改都被
c2

覆盖,所以您想知道两次提交之间哪些文件不同?使用
git diff
比较两个树状对象:

git diff --name-only commit1 commit2

你能添加你试图使用的命令吗?我不懂queston。提供示例。没有什么不同,我想在头部找到所有包含在指定提交中更改的行的文件。因此,正如我在问题中所描述的,如果更改被另一个提交覆盖,那么它们不会包含在最终结果中。换句话说,在至少一个指定的提交中,对找到的文件使用责备应该显示至少一行更改。@mishanesterenko如果这是您想要的,那么使用
git责备
grep
获取您的答案有什么错?@mishanesterenko:您确实尝试过diff吗?我情不自禁,但我认为它符合您的要求,即»不显示被覆盖/更改回的更改«