git更改已提交作者用户名

git更改已提交作者用户名

官网地址

配置作者用户名

为当前本地库单独配置作者信息

git config -f .git/config user.name "name"
git config -f .git/config user.email "email@com.cn"

使用脚本更改存储库的Git历史记录

  1. 打开Git Bash
  2. 创建一个新的,你的仓库bare的克隆

    git clone --bare https://github.com/XXX/XXX.git
    cd XXX.git

  3. 复制并粘贴脚本,根据收集的信息替换以下变量
    • OLD_EMAIL
    • CORRECT_NAME
    • CORRECT_NAME
      git filter-branch --env-filter '
      OLD_EMAIL="XXX@XXX.com"
      CORRECT_NAME="XXX"
      CORRECT_EMAIL="XXX@XXX.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
  4. 按Enter键运行脚本。
  5. 检查新的Git历史记录是否有错误。
  6. 将更正的历史记录推送到GitHub

    git push --force --tags origin 'refs/heads/*'

  7. 清理临时克隆

    cd ..
    rm -rf XXX.git





转载于:https://www.cnblogs.com/duicym/p/f37cc7afcf6f306e715b2f78e42fe83f.html

### 更改 Git 历史记录中的用户名 在 IntelliJ IDEA 中更改已经提交Git 的历史记录中的用户名是一项较为复杂的操作,因为这涉及到重写提交的历史记录。以下是实现这一目标的具体方法: 可以通过 `git filter-branch` 或者现代的工具如 BFG Repo Cleaner 来完成这项任务。 #### 使用 `git filter-branch` 如果希望手动调整提交者的姓名和电子邮件地址,可以运行以下命令来新所有的提交记录: ```bash 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 ``` 上述脚本会遍历每一个提交,并将旧的邮件地址替换为新的名字与邮箱[^2]。 注意,在执行该命令之前,请确保备份仓库以防万一出现问题。另外,由于此过程改变了提交哈希值,因此可能会影响其他开发者的工作流;所以在共享分支上应用这些变化前需谨慎考虑并与团队成员沟通好。 当以上步骤完成后,记得强制推送修改后的版本至远程服务器覆盖原有数据: ```bash git push origin --force --all git push origin --force --tags ``` 这样就可以成功地改变所有过去的提交里的作者信息了。 #### 使用 BFG Repo Cleaner 对于大规模项目或者只想删除某些敏感文件而不是编辑每条消息的情况来说,BFG可能是好的选择因为它速度快而且容易使用. 下载并安装BFG后,只需一条简单的命令即可清理整个存储库: ```bash java -jar bfg.jar --replace-text replacements.txt my-repo.git ``` 其中replacements.txt定义了哪些字符串应该被替换成什么内容(比如原来的email对应的新email).多详情可查阅官方文档获取进一步指导[^3]. 最后同样需要做一次强制push把修正过的结果同步回远端仓库上去. ### 注意事项 无论采用哪种方式都需要特别小心处理,尤其是当你正在协作开发同一个代码库的时候.强行新公共分支可能会给同事带来麻烦所以最好先协商一致再行动. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值