乐趣区

关于git:Git-Push-f-命令详解

最近遇到了一个 Git Push 相干的问题,共事不小心把一些错误代码提交到仓库了。
如果每个人间接更新的话,会导致错误代码也更新到本地了。

这个时候想要防止这种状况的产生,惟一能够做的就是将那些错误代码间接笼罩掉。

git push -f

git push -f 这个命令的作用是将本人本地仓库的代码间接推送至仓库,齐全以你的提交为准,之前其他人的提交都会被笼罩。

那么这么可怕的命令,到底在什么状况下才实用呢?

应用机会

有两种状况下适宜应用这个命令:

  1. 确定须要覆笼罩提交,就像下面的那种状况,在明确局部提交会导致异样时,能够应用新的提交去笼罩。
  2. 须要整顿历史提交记录时,有时候我的项目的 Commit Logs 可能比拟乱,不能清晰的看出每一次提交的作用,能够应用 rebase 命令来清理历史提交记录。因为扭转了历史,所以失常来说是 push不胜利的,所以须要应用 force push来解决这个问题。

默认分支爱护

因为可能会呈现不小心应用的状况,GithubGitlab这类源码托管网站会提供分支爱护机制。能够防止某个分支被 force push,默认是 master为爱护分支。

这里以 Gitlab 为例,设置 -> 仓库 ->Protected Branches

所以如果想强制提交,前提须要勾销对该分支的爱护。

万一本人的代码被笼罩掉了,还救得回来吗?

其实也是有方法的,那就是换你或是其它有之前提交的共事,再次进行 git push -f,将正确的内容强制提交下来,笼罩上一次 git push -f 所造成的劫难。

参考链接

聽說 git push -f 這個指令很可怕,什麼情況能够应用它呢?

退出移动版