什么是在git中实现的特定功能?

时间:2014-08-20 14:19:27

标签: git github git-commit

需要找出--reset-author命令添加到git commit选项的时间(版本,提交,等等)。

我已经去了GitHub仓库,搜索“reset-author”。这只给了我实际包含匹配的文件,而且我在这里做git责备并且没有把我带到任何地方。

另一种方法是在回购中找出“reset-author”的第一次出现。我现在要在当地克隆整个回购并尝试这样做。

有更简单的方法吗?

2 个答案:

答案 0 :(得分:3)

哪个提交引入了该功能?

Git项目仓库中的提交消息非常详细。如果您克隆Git仓库,

cd ~/Desktop
git clone https://github.com/git/git
cd git

并运行

git log --reverse --grep="reset-author"

第一个日志条目是:

commit c51f6ceed6a9a436f16f8b4f17eab1a3d17cffed
Author: Erick Mattos <erick.mattos@gmail.com>
Date:   Wed Nov 4 01:20:11 2009 -0200

    commit -c/-C/--amend: reset timestamp and authorship to committer with --reset-a

    When we use -c, -C, or --amend, we are trying one of two things: using the
    source as a template or modifying a commit with corrections.

    When these options are used, the authorship and timestamp recorded in the
    newly created commit are always taken from the original commit.  This is
    inconvenient when we just want to borrow the commit log message or when
    our change to the code is so significant that we should take over the
    authorship (with the blame for bugs we introduce, of course).

    The new --reset-author option is meant to solve this need by regenerating
    the timestamp and setting the committer as the new author.

    Signed-off-by: Erick Mattos <erick.mattos@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>

注意最后一段:

  

新的--reset-author选项[...]

所以你去了:该功能于2009年11月4日星期三01:20:11(时区:-0200)发布。

在哪个版本的Git中,该功能首次出现?

此外,您可以将该提交的SHA传递给git-name-rev,以确定提交出现的最早版本:

$ git name-rev --name-only c51f6ceed6a9a436f16f8b4f17eab1a3d17cffed
tags/v1.7.8.1~8^2~1

在这种情况下:Git v1.7.8.1。

这是一个别名,用于指明该功能的开始;在您的一个Git配置文件的[alias]部分下添加以下条目:

inception = "!f() { git name-rev --name-only $(git log --pretty=format:\"%H\" --grep=\"$1\" --reverse master | head -1); }; f"

然后你可以做

$ git inception "--reset-author"
tags/v1.7.8.1~8^2~1

表示在Git v1.7.8.1中引入了--reset-author标志。

答案 1 :(得分:2)

1)在本地克隆了回购

2)在代码中搜索 reset-author 字符串(需要一段时间):

git log -S'reset-author'

导航到最后一场比赛,那里是:

Author: Erick Mattos <erick.mattos@gmail.com>
Date:   Wed Nov 4 01:20:11 2009 -0200

commit -c/-C/--amend: reset timestamp and authorship to committer with --reset-author
...

令人敬畏的提交消息btw,这导致@Jubobs提供更快的解决方案。仅搜索提交消息:

git log --grep="reset-author"