zoukankan      html  css  js  c++  java
  • 批量修改历史commit的用户名user.name邮箱user.email

    配置当前的用户名邮箱可以当前项目配置或者全局配置。

    仅当前项目配置:

    git config user.name 'your-user-name'
    git config user.email 'your-user-email'

    全局配置:

    git config --global user.name 'your-user-name'
    git config --global user.email 'your-user-email'

    新建shell脚本 change-email-name.sh 内容如下:

    #!/bin/sh
    
    git filter-branch --env-filter '
    
    OLD_EMAIL="your-old-email"
    NEW_NAME="your-new-name"
    NEW_EMAIL="your-new-email"
    
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_COMMITTER_NAME="$NEW_NAME"
        export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_AUTHOR_NAME="$NEW_NAME"
        export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags
    将脚本放到项目根目录下,执行脚本:
    ./change-email-name.sh
    
    

    如果执行失败,执行以下代码后再执行脚本:

    git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

    然后强行覆盖仓库

    git push origin --force --all
     
    
    
    
     
  • 相关阅读:
    数据结构——第二章 线性结构
    数据结构——第一章 绪论
    2018年
    Node笔记(2)
    Node笔记(1)
    公务员考试
    cf-789A (思维)
    cf188C(最大子段和&&思维)
    zzuli1731 矩阵(容斥)
    九余数定理(同余定理)
  • 原文地址:https://www.cnblogs.com/Man-Dream-Necessary/p/10045350.html
Copyright © 2011-2022 走看看