【发布时间】: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