为什么会git push
导致强制更新,导致源上的提交丢失?可以做些什么来防止这种情况发生?
- 客户端:git 版本 1.8.2.2
push.default
调成simple
- 服务器端:gitlab 5.1.0 4854087
根据一些搜索,它可能与+
登录remote.origin.fetch
设置有关,但是当我克隆一个新的存储库时,该+
符号已经存在(所以它不是由我弄乱存储库引起的)。
如果您在配置中看到.mirror
option,那么 git push 会覆盖所有内容是有道理的:
remote.<name>.mirror
如果为 true,则推送到此遥控器将自动表现得就像
--mirror
在命令行上给出了选项一样。
你可以用git config remote.backup.mirror true
.
如果您有权访问远程回购设置,那么您可以执行以下操作:
git config receive.denyNonFastForwards true
为了防止那些强行推动。
但是,例如 GitHub 等远程存储库尚不支持此功能。