簡體   English   中英

git更改提交者名稱的所有歷史記錄,並更改特定提交者的電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM