[英]git change all history for committers names and email for specific committer
我如何無法更改我的所有提交歷史記錄(但特定提交者)的名稱和電子郵件。
就像,foreach allcommits如果committer_name =“ Hugo Casa”更改:committer_name committer_email author_name author_email
然后,執行並刷新歷史記錄的數據。
請helppp我搜索並發現:
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” | sort -u和production251的名稱顯示..
我發現了新代碼:
git filter-branch --force --env-filter'如果[[$ GIT_COMMITTER_NAME“ = dmiguel”];然后GIT_COMMITTER_NAME =“ Diana Miguel”; GIT_COMMITTER_EMAIL =“ paola.miguel@ibusplus.com”; GIT_AUTHOR_NAME =“ Diana Miguel” ; GIT_AUTHOR_EMAIL =“ paola.miguel@ibusplus.com”; fi'--全部
這樣好嗎 或不? 將此代碼放到終端(ubuntu)后,是否需要一些附加代碼?是否需要推送?
您將失去為GIT_COMMITTER_NAME設置的值以及在設置它們和執行git commit-tree
之間設置的其他值。 您要么需要將它們全部放在同一命令行上,要么在它們前面使用export
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.