当推送到主源时,git是否强制本地更新/合并?

时间:2011-12-28 17:21:17

标签: git

假设有100名开发人员在同一个项目上工作。

当每个开发人员将他们的变更集推送到中央仓库(原始主仓)时,他们是否被迫在本地拉/合并获得所有更新?

或者只要他们都处理不同的文件并且不需要合并,他们就不会被迫这样做?

3 个答案:

答案 0 :(得分:2)

Push不会自动拉动。如果许多开发人员正在处理单个更新的分支,那么建议他们始终执行

git pull --rebase && git push

答案 1 :(得分:1)

不允许您描述的方案:当gt远程存储库不是快进时,它们不允许推送到分支。

假设您要推送到分支b。远程位于r点。您的开发人员希望将提交从其分支b推送到远程b,从点d一直到其HEAD:如果r不是,则将不起作用严格等于d

这是设计的:如果你被允许这样做,你就会打破其他所有开发项目的开发人员分支,更不用说失去提交的可能性很高。当然,Devs有他们的本地reflogs,但仍然。

答案 2 :(得分:0)

简短的回答:是的,他们必须在他们推动的分支上的任何其他变化中获取并合并。

更长的答案:Git故意不会试图明智地知道更改是否需要相互融合:就Git而言,历史已经改变,因此树需要合并客户端-侧。值得庆幸的是,在大多数情况下,这就像git pullgit pull --rebase一样简单,然后快速检查更改的内容以及所有内容是否仍然有效。