git 版本回退问题

340 阅读1分钟

描述: 只有一个maser 分支

问题 某次代码没有pull,我更改完代码之前提交上去,导致别人(已离开)之前写得代码被覆盖掉。

解决:版本回退

现在是git仓库是 A>B>C>D 本地版本是A>B>C>D

执行git reset --hard B(版本号)(ps:版本号可以git log,也可以直接去gitlab上看) 线上版本还是 A>B>C>D,本地版本变成了A>B,再次更改本地自己的代码(可以直接去git仓库上黏贴)。 现在本地的变成了A>B>E.

Attention: 现在改完代码后如何往git仓库 端推送代码呢。这个时候你的代码只能检测到刚刚更改的变动。其它代码是检测不到的。网上翻阅资料,执行 git push --force 就是强行将本地的代码推送到git仓库,作为当前版本。

执行之后报错

image.png 大意就是: 在这个项目中,我不被允许强行push 代码到这个被保护的分支(master)(翻译不是很好) 参考了下,大致要这么做

image.png

将这个权限关掉。然后再去执行git push --force。 这个时候发现代码已经推上去了。打开git仓库。发现CD版本已消失,直接是E版本。