您的位置:首页 > 其它

修改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了.

再次申明这是极端情况下的方案, 正常情况请勿尝试.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: