【问题标题】:git change all history for committers names and email for specific committergit 更改提交者姓名的所有历史记录和特定提交者的电子邮件
【发布时间】:2014-11-14 08:46:42
【问题描述】:

除了特定的提交者之外,我无法更改所有提交历史的名称和电子邮件。

类似,foreach allcommits if committer_name = "Hugo Casa" 改变 : 提交者名称 提交者电子邮件 作者姓名 作者邮箱

在这样做之后, 推送和刷新历史数据。

请帮助我搜索并找到这个:

git filter-branch --commit-filter '
        if [ "$GIT_COMMITTER_NAME" = "production251" ];
        then
                GIT_COMMITTER_NAME="Hugo Casanova";
                GIT_AUTHOR_NAME="Hugo Casanova";
                GIT_COMMITTER_EMAIL="hugo.casanova.ibusplus.com";
                GIT_AUTHOR_EMAIL="hugo.casanova.ibusplus.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD


git filter-branch --env-filter '
    oldname="(old name)"
    oldemail="(old email)"
    newname="(new name)"
    newemail="(new email)"
    [ "$GIT_AUTHOR_EMAIL" = "$oldemail" ] && GIT_AUTHOR_EMAIL="$newemail"
    [ "$GIT_COMMITTER_EMAIL" = "$oldemail" ] && GIT_COMMITTER_EMAIL="$newemail"
    [ "$GIT_AUTHOR_NAME" = "$oldname" ] && GIT_AUTHOR_NAME="$newname"
    [ "$GIT_COMMITTER_NAME" = "$oldname" ] && GIT_COMMITTER_NAME="$newname"
    ' HEAD

但是...之后: 写: git log --pretty=format:"%an" |排序 -u 以及production251节目的名称..

我找到了新代码:

git filter-branch --force --env-filter ' 如果 [ "$GIT_COMMITTER_NAME" = dmiguel" ]; 然后 GIT_COMMITTER_NAME="戴安娜米格尔"; GIT_COMMITTER_EMAIL="paola.miguel@ibusplus.com"; GIT_AUTHOR_NAME="戴安娜米格尔"; GIT_AUTHOR_EMAIL="paola.miguel@ibusplus.com"; fi' -- -- 全部

这样好吗?或不?将此代码放在终端(ubuntu)上后,还需要一些代码吗?,推送什么的?

【问题讨论】:

    标签: git commit git-filter-branch


    【解决方案1】:

    在设置 GIT_COMMITTER_NAME 和执行 git commit-tree 之间,您正在丢失为 GIT_COMMITTER_NAME 和其他设置的值。您要么需要在同一命令行上全部完成,要么在它们前面使用export

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      相关资源
      最近更新 更多