• 35648

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

修改 Git 提交日志的作者信息

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/ITjs/2019/0611/616.html 这两天遇到一个问题,需要修改一下 Git 提交日志中的作者名称以及电子邮件。好吧,D瓜哥承认,这个需
求很奇葩。原以为不能搞,上网查了一下,可以搞。直接上代码:

#
# D瓜哥,http://www.diguage.com
#

git filter-branch -f --env-filter "
    GIT_AUTHOR_NAME='diguage'
    GIT_AUTHOR_EMAIL='leejun119@gmail.com'
    GIT_COMMITTER_NAME='diguage'
    GIT_COMMITTER_EMAIL='leejun119@gmail.com'
  " HEAD

如果需要选择一部分用户来调整,则可以这样如下:

#
# D瓜哥,http://www.diguage.com
#

git filter-branch --commit-filter '
    if [ "$GIT_COMMITTER_NAME" = "lijun" ];
    then
        GIT_COMMITTER_NAME="diguage";
        GIT_AUTHOR_NAME="diguage";
        GIT_COMMITTER_EMAIL="leejun119@gmail.com";
        GIT_AUTHOR_EMAIL="leejun119@gmail.com";
        git commit-tree "$@";
    else
        git commit-tree "$@";
    fi' HEAD~3..HEAD

注意:命令最后 HEAD~3..HEAD 用于指出需要修改的记录范围。

在查看资料是,Stock Overflow 上的一个回答说 Github 的一种搞法是这样的:

#
# D瓜哥,http://www.diguage.com
#

git filter-branch --env-filter '
    an="$GIT_AUTHOR_NAME"
    am="$GIT_AUTHOR_EMAIL"
    cn="$GIT_COMMITTER_NAME"
    cm="$GIT_COMMITTER_EMAIL"

    if [ "$GIT_COMMITTER_EMAIL" = "lijun@diguage.com" ]
    then
        cn="diguage"
        cm="leejun119@gmail.com"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "lijun@diguage.com" ]
    then
        an="diguage"
        am="leejun119@gmail.com"
    fi

    export GIT_AUTHOR_NAME="$an"
    export GIT_AUTHOR_EMAIL="$am"
    export GIT_COMMITTER_NAME="$cn"
    export GIT_COMMITTER_EMAIL="$cm"
  ' HEAD~2..HEAD

最后,再提醒一句,D瓜哥在测试的时候发现,一个库修改一次很顺利。如果修改第二次则需要在最后一个的
前面加上参数 -f

参考资料



相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!