如何找出谁(哪个用户)为给定的Git提交已删除的代码行?

如何找出谁(哪个用户)为给定的Git提交已删除的代码行?,git,Git,在Git版本控制中,我想找出谁(什么用户)最初为给定的提交提交删除的代码行 我怎么能找到这个 我想检查许多Git提交的情况;因此,使用图形界面不是一个选项。我正在寻找一个Git命令(或连续命令)来使用Python脚本自动化此过程。您可以使用Git命令: git接受一个文件,并使用上次修改该行的修订版本中的信息注释给定文件中的每一行。(可选)从给定修订开始注释 或者,您可以使用诸如gitk之类的图形工具来查看提交更改了什么以及所有更改 您可以使用git: git接受一个文件,并使用上次修改该行的修

在Git版本控制中,我想找出谁(什么用户)最初为给定的提交提交删除的代码行

我怎么能找到这个


我想检查许多Git提交的情况;因此,使用图形界面不是一个选项。我正在寻找一个Git命令(或连续命令)来使用Python脚本自动化此过程。

您可以使用Git命令:

git
接受一个文件,并使用上次修改该行的修订版本中的信息注释给定文件中的每一行。(可选)从给定修订开始注释


或者,您可以使用诸如
gitk
之类的图形工具来查看提交更改了什么以及所有更改

您可以使用git:

git
接受一个文件,并使用上次修改该行的修订版本中的信息注释给定文件中的每一行。(可选)从给定修订开始注释


或者,您可以使用诸如
gitk
之类的图形工具来查看提交更改了什么以及所有更改

如果我理解正确,你想知道是谁最初添加了一行刚刚删除的内容吗?例如,在中,我们看到行
=head1c
被删除。这句话最初是谁写的

--- a/lib/perl5i.pm
+++ b/lib/perl5i.pm
@@ -1118,27 +1118,29 @@ Example:
     from CPAN or another repository.  Your library paths are:
         Indented list of paths, 1 per line...

-=head1 C<import>

-This subroutine is called automatically, see L<perlfunc/import>.
+=head1 Turning off features
...
这是提交、作者姓名、提交发生的时间和行

这不一定是这句话的原作者。即使是进行简单空格更改的提交也会出现。要避免这种情况,请添加
-w
以忽略空白更改
git-w lib/perl5i.pm

但这是针对当前提交的。您可以在某个特定的提交时请求责备,我们的示例是删除该行的
4519fb29cef
。如果我们这样做
git bull-w lib/perl5i.pm 4519fb29cef
该行将已被删除,因此不会显示在bull中。相反,对上一次提交执行
git责备
git-w lib/perl5i.pm 4519fb29cef^

...
4afdb783 (Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27 +0100 1121) =head1 C<import>
4afdb783 (Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27 +0100 1122) 
4afdb783 (Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27 +0100 1123) This subroutine is called automatically, see L<perlfunc/import>.
...
。。。
4afdb783(拉尔斯Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27+0100 1121)=标题1 C
4afdb783(拉尔斯Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27 +0100 1122) 
4afdb783(拉尔斯Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27+0100 1123)此子例程是自动调用的,请参见L。
...

通过
Lars Dɪ提交
4afdb783
ᴇᴄᴋᴏᴡ 迪拉斯最后一次触碰那条线。由于有时更改可能是微不足道的,所以请执行
git log-p4afdb783
以验证这是一个重大更改。如果没有,再做同样的事情。在提交之前的提交上运行
git-gull
git-bull-w 4afdb783^
。继续,直到出现重大变化。

如果我正确理解了问题,您想知道是谁最初添加了刚刚删除的一行吗?例如,在中,我们看到行
=head1c
被删除。这句话最初是谁写的

--- a/lib/perl5i.pm
+++ b/lib/perl5i.pm
@@ -1118,27 +1118,29 @@ Example:
     from CPAN or another repository.  Your library paths are:
         Indented list of paths, 1 per line...

-=head1 C<import>

-This subroutine is called automatically, see L<perlfunc/import>.
+=head1 Turning off features
...
这是提交、作者姓名、提交发生的时间和行

这不一定是这句话的原作者。即使是进行简单空格更改的提交也会出现。要避免这种情况,请添加
-w
以忽略空白更改
git-w lib/perl5i.pm

但这是针对当前提交的。您可以在某个特定的提交时请求责备,我们的示例是删除该行的
4519fb29cef
。如果我们这样做
git bull-w lib/perl5i.pm 4519fb29cef
该行将已被删除,因此不会显示在bull中。相反,对上一次提交执行
git责备
git-w lib/perl5i.pm 4519fb29cef^

...
4afdb783 (Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27 +0100 1121) =head1 C<import>
4afdb783 (Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27 +0100 1122) 
4afdb783 (Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27 +0100 1123) This subroutine is called automatically, see L<perlfunc/import>.
...
。。。
4afdb783(拉尔斯Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27+0100 1121)=标题1 C
4afdb783(拉尔斯Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27 +0100 1122) 
4afdb783(拉尔斯Dɪᴇᴄᴋᴏᴡ 迪拉斯     2013-03-01 11:16:27+0100 1123)此子例程是自动调用的,请参见L。
...

通过
Lars Dɪ提交
4afdb783
ᴇᴄᴋᴏᴡ 迪拉斯最后一次触碰那条线。由于有时更改可能是微不足道的,所以请执行
git log-p4afdb783
以验证这是一个重大更改。如果没有,再做同样的事情。在提交之前的提交上运行
git-gull
git-bull-w 4afdb783^
。继续,直到发生重大更改。

在提交中删除行的人就是进行提交的人。我不认为你在问这个。您能澄清一下吗?通过给定的提交,您可以知道在存储库中删除或添加了哪行代码。删除的代码行属于最初以不同提交方式添加到存储库的另一个人。我想找到那个用户。我希望这足够清楚。如果我理解正确,您想找到谁最初添加了刚刚删除的一行?是的,您是正确的。您可能感兴趣。在提交中删除这些行的人就是进行提交的人。我不认为你在问这个。您能澄清一下吗?通过给定的提交,您可以知道在存储库中删除或添加了哪行代码。删除的代码行属于最初以不同提交方式添加到存储库的另一个人。我想找到那个用户。我希望它足够清楚。如果我理解正确,您想找到谁最初添加了刚刚删除的一行吗?是的,您是正确的。您可能会感兴趣。Git Bull适用于给定的文件名,而不是给定的版本。请把确切的命令传给我好吗?对于给定的版本,我想找出谁最初为给定的提交向存储库添加了已删除的代码行。如果
callsomeuniqueline
中的
54e872ea
删除了
filename
中的
callsomeuniqueline
,那么您可以将该行归咎于中的父提交