如何修改Github上提交的错误用户地址和姓名
2015-09-12 20:36
477 查看
Changing author info
https://help.github.com/articles/changing-author-info/To change the name and/or email address recorded in existing commits, you must rewrite the entire history of your Git repository.
Warning: This action is destructive to your repository's history. If you're collaborating on a repository with others, it's considered bad practice to rewrite published history. You should only do this in an emergency.
Changing the Git history of your repository using a script
We've created a script that will change any commits that previously had the old email address in its author or committer fields to use the correct name and email address.Note: Running this script rewrites history for all repository collaborators. After completing these steps, any person with forks or clones must fetch the rewritten history and rebase any local changes into the rewritten history.
Before running this script, you'll need:
The old email address that appears in the author/committer fields that you want to change
The correct name and email address that you would like such commits to be attributed to
Open Terminal (for Mac users) or the command prompt (for Windows and Linux users).
Create a fresh, bare clone of your repository:
git clone --bare https://github.com/user/repo.git cd repo.git
Copy and paste the script, replacing the following variables based on the information you gathered:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
#!/bin/sh 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
Press Enter to run the script.
Review the new Git history for errors.
Push the corrected history to GitHub:
git push --force --tags origin 'refs/heads/*'
Clean up the temporary clone:
cd .. rm -rf repo.git
相关文章推荐
- Python 爬虫 urllib2异常处理
- Java构造和解析Json数据的两种方法详解(02)
- C++面向对象
- Quartz()整合Spring容器中bean及动态调度任务
- C++基础知识
- SpringMVC中关于向action中跳转的问题和解决(01)
- Java中直接执行sql语句,返回List集合
- java__集合02
- Django Web开发指南的坑
- 单例模式(多例,线程安全)
- Python学习----错误、调试和测试
- Java初阶-HelloWorld
- 弱类型和强类型的简单理解
- Untiy3D笔记之番外篇——c# 生成真正随机数
- Spring中配置Hibernate事务管理
- Java求余运算
- java之-------设计模式(多例模式)
- Java实现Gzip的压缩和解压
- numpy函数fromfunction分析
- C语言---进制