修改git 所有历史记录
2016-03-24 15:52
337 查看
分割线下面的是我之前的错误处理办法, 这里更新下:
git 支持重写历史, 可能大家常用的是git rebase这个修改近期的commit可能比较方便, 但是当你想修改所有历史时就需要用到filter-branch了
比如修改所有commit中的邮箱地址:
git filter-branch --commit-filter
'
if [ "$GIT_AUTHOR_EMAIL" = "xxxxx@localhost"
];
then
GIT_AUTHOR_NAME="new
name";
GIT_AUTHOR_EMAIL="newemail@example.com";
git
commit-tree "$@";
else
git
commit-tree "$@";
fi'
HEAD
这样就能改变历史所有commit了
---------------------------------------------------------------------------------------------------------------
首先,清空所有记录意味着破坏git的原有commit 记录, 分支等 非极端情况请勿做此操作.
当出现个人维护项目想要清空所有提交从零开始, 或者像我一样从github上clone项目忘了重新git init然后直接推到自己的远程仓库, 结果发现里面全是原作者的commit记录时才不得已作此操作.
具体操作很简单:
1. 删除本地.git文件本地项目文件下 rm -rf .git
2. git init
3. git add . && git commit -"重新推项目""
4. git push -f -u origin master 在此步骤如果你的远程仓库设置了禁止删除分支, 会出现"PUSH REJECTED BY EVIL DRAGON BUREAUCRATS" 并出现火龙图案, 此时你要联系远程仓库管理员修改远程仓库设置了,修改完重复4就OK了.
再次申明这是极端情况下的方案, 正常情况请勿尝试.
git 支持重写历史, 可能大家常用的是git rebase这个修改近期的commit可能比较方便, 但是当你想修改所有历史时就需要用到filter-branch了
比如修改所有commit中的邮箱地址:
git filter-branch --commit-filter
'
if [ "$GIT_AUTHOR_EMAIL" = "xxxxx@localhost"
];
then
GIT_AUTHOR_NAME="new
name";
GIT_AUTHOR_EMAIL="newemail@example.com";
git
commit-tree "$@";
else
git
commit-tree "$@";
fi'
HEAD
这样就能改变历史所有commit了
---------------------------------------------------------------------------------------------------------------
首先,清空所有记录意味着破坏git的原有commit 记录, 分支等 非极端情况请勿做此操作.
当出现个人维护项目想要清空所有提交从零开始, 或者像我一样从github上clone项目忘了重新git init然后直接推到自己的远程仓库, 结果发现里面全是原作者的commit记录时才不得已作此操作.
具体操作很简单:
1. 删除本地.git文件本地项目文件下 rm -rf .git
2. git init
3. git add . && git commit -"重新推项目""
4. git push -f -u origin master 在此步骤如果你的远程仓库设置了禁止删除分支, 会出现"PUSH REJECTED BY EVIL DRAGON BUREAUCRATS" 并出现火龙图案, 此时你要联系远程仓库管理员修改远程仓库设置了,修改完重复4就OK了.
再次申明这是极端情况下的方案, 正常情况请勿尝试.
相关文章推荐
- 双机调试和windbg的命令
- dword与dword_ptr类型的区别及64位系统下调用系统函数直接崩溃的问题
- 女码农献丑-企业智能机器人客服(图灵机器人)
- 第三周总结
- 错误:Invalid action class configuration that references an unknown class named [XXX]的解决
- IOS 网络-深入浅出(一 )-> 三方SDWebImage
- MicrosoftProjectOxford 微软牛津计划
- 网页解析器
- POJ 3469 Dual Core CPU(最小割)
- Android 通过JNI实现守护进程,使Service服务不被杀死
- AS 导入jar包后运行出错:finished with non-zero exit value 3
- wamp安装后,apache访问出现403
- 稀疏表示step by step(转)
- 【Android】5、详解项目中的资源
- 布局平板电脑 英特尔Atom新核芯全解析
- MySQL性能优化之参数配置
- apache https配置步骤
- 作业3
- java类object
- python(6)-shutil模块