作者回复: 自己独自使用的分支,可以采用push -f 的方式。 团队集成分支,通常做法不是去掉不想要的commit,而是把不想要的commit的内容采用revert的方式生成新的commit,以此去掉不想要的变更。然后push到远端
作者回复: 如果想拯救还是有办法的,当然得先通知到团队,停止使用该分支,包括基于该分支创建新的分支。其次,只要git仓库里面原来的commit还在就能恢复成原样,实现的方式有许多种。 比如,在gitlab上恢复的话,可以把破坏掉的分支先删除掉,然后基于原来的commit重新建出该分支。 如果在git客户端恢复的话,先把本地分支reset回原来的commit,然后朝远端push -f 即可。
作者回复: 我们本节强调的是:不要去强制修改团队集成分支的历史,否则容易丢失变更的内容,也容易把集成分支的历史变得“动荡”,从而让代码协作变得困难。 个人的开发分支尚未合入到集成分支之前,可以通过 -f 的方式变更分支历史,他人push -f的方法和我们自己执行的方式是相同的。 如果回答的内容还对不上你的困惑,欢迎把具体的疑问提到 https://github.com/DevOpsLakes/devopslakes.github.io/issues 里面去。