Git – 公共历史

公共历史是指远程仓库中的提交历史。

公共历史不宜修改

远程仓库中的提交历史通常都是有意义的。

过于琐碎的提交,不利于团队成员之间的协作。本地的多个小修改提交,通常可以通过git rebase -i命令合成为一个大的,更有意义的提交,然后推送到远程仓库,分享给团队成员。一旦提交推送到远程仓库后,通常不会再去修改。

另外修改远程仓库中的提交有可能覆盖其他人的推送,因此一般不建议修改。

安全修改公共历史

如果一定要修改公共历史,按如下步骤进行:

  1. 在本地使用git rebase -i修改提交历史
  2. 使用git push --force-with-lease推送到远程仓库
    • 使用git push命令会报错,不允许推送
    • 使用git push -- force过于危险,有可能会覆盖其他人的推送
    • 使用git push --force-with-lease,在推送之前,将检查本地版本与对应分支的远程版本是否匹配,这样,你就可以确保在重写历史时,不会意外地擦除其他人推送的更改! 过程如下图所示:

图

注意

不要修改公共历史,除非你清楚自己在做什么。如果一定要修改,要注意安全,使用git push --force-with-lease



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载