0

已经建立了一个主 git repo 和它的镜像。经过一些实验,我发现了一个典型的冲突解决(错误)管理:在没有警告的情况下,git 只是丢弃了冲突的提交——一个非常疯狂的默认设置。

在仔细阅读了SO之后,我尝试了

git config receive.denyNonFastForwards 1
git config receive.denyDeletes 1

但这并不能解决丢失的提交问题。当主存储库和镜像存储库中有两个冲突的提交时,

git remote update
git push --mirror

镜像上的会覆盖镜像上的相应提交。如果幸运的话,提交已删除提交的人将在下一次拉取时检测到这一点。

是否有任何其他配置选项可以防止强制更新/删除,或者提交整个冲突,以便下一个要拉的人能够解决它,无论他是否参与产生冲突?

那里有更好的 SCM 吗?或者更准确地说:当在分布式环境中运行时,是否有 SCM 可以更安全地处理冲突解决?示例:为什么不将两个或多个提交记录为“并行”并让下一位编辑将它们重新组合在一起?人们可以将这种行为描述为“自动分支”。然后相当于“git pull”将检测新的上游分支点并要求用户决定走哪条路......

4

0 回答 0