美文网首页
修改git提交历史中的author和email

修改git提交历史中的author和email

作者: zzz1t1 | 来源:发表于2020-11-25 10:14 被阅读0次

    Git 配置文件分为三级,系统级(–system)、用户级(–global)和目录级(–local),三者的使用优先级以离目录 (repository)最近为原则,如果三者的配置不一样,则生效优先级 目录级>用户级>系统级,可以通过 git config --help 查看更多内容。

    系统级配置存储在 /etc/gitconfig 文件中,可以使用 git config --system user.name "jim" ,git config --sytem user.email "jim.jim@gmail.com" 来进行配置,该配置对系统上所有用户及他们所拥有的仓库都生效的配置值。

    用户级存储在每个用户的 ~/.gitconfig 中,可以使用 git config --global user.name "jim" ,git config --global user.email "jim.jim@gmail.com" 来进行配置,该配置对当前用户上所有的仓库有效。

    目录级存储在每个仓库下的 .git/config 中,可以使用 git config --local user.name "jim" , git config --local user.email "jim.jim@gmail.com" 来进行配置,只对当前仓库生效。

    如果上次提交 msg 错误/有未提交的文件应该同上一次一起提交,需要重新提交备注:git commit --amend -m 'new msg'

    修改上次提交的 author、email可以使用 :git commit --amend --author="newName <newEmail>"

    修改整个历史记录中的某些错误的 author、email有两种方式 git rebase 或者 git filter-branch

    # git rebase 模式
    
    git rebase -i -p 76892625a7b126f4772f8d7e331ada3552c11ce1
    
    # 弹出编辑器,在需要修改的 commit 处 由 picked 改变为 edit ,然后 wq 退出 vim;
    
    git commit --amend --author 'newName <newEmail>'
    
    # 执行后即变更了相应的 author 和 email
    
    git rebase --continue
    

    git rebase 模式需要理解 git 的操作原理,步骤也比较多,可以直接使用 git filter-branch快速方便

    # git filter-branch 模式 https://help.github.com/articles/changing-author-info/
    
    git filter-branch --env-filter '
    
    OLD_EMAIL="your-old-email@example.com"
    
    CORRECT_NAME="Your Correct Name"
    
    CORRECT_EMAIL="your-correct-email@example.com"
    
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    
    then
    
        export GIT_COMMITTER_NAME="$CORRECT_NAME"
    
        export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    
    fi
    
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    
    then
    
        export GIT_AUTHOR_NAME="$CORRECT_NAME"
    
        export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    
    fi
    
    ' --tag-name-filter cat -- --branches --tags
    

    相关文章

      网友评论

          本文标题:修改git提交历史中的author和email

          本文链接:https://www.haomeiwen.com/subject/cpigiktx.html