问题:需要修改前面某次的日志并同步到远程仓库,但是仓库设置了无法更改,而且更改之后会把别人的提交归档到你的提交。这显然是不行的。
答:回退版本处理。回退到需要修改的那次上传的前一次!划重点,需要回档的前一次。
核心操作:备份最新版本 => 版本回退 => 回退完毕新建本地仓库更新远程仓库 => 再把备份文件覆盖至新建本地仓库然后push。
额外提醒:回退之前一定要备份!回退之前一定要备份!回退之前一定要备份!
1.打开本地仓库右键,git bash
2.git log 会显示所有上传的log信息。往下翻值到找到上面说的你想要回档的前一次,复制那次log的commit同行后面的信息(一般很长,是数字字母组合。二般的我没见过)
3.回到git bash,输入git reflog运行
4.git reset --hard xxxx 此处的xxxx是步骤2里面复制的那一长串组合信息。然后运行即可。
5.运行之后等着就好了。结果就是本地文件回退到想要修改的log之前那次。
6.回退完毕之后,强制push到远程仓。右键push或者push -f均可。
6.新建一个本地仓,git clone远程仓。此时down下来的已经是回退的版本了。
(下面几步是每个仓库开发者都需要做的事!)