假设有100名开发人员在同一个项目上工作。
当每个开发人员将他们的变更集推送到中央仓库(原始主仓)时,他们是否被迫在本地拉/合并获得所有更新?
或者只要他们都处理不同的文件并且不需要合并,他们就不会被迫这样做?
答案 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 pull
或git pull --rebase
一样简单,然后快速检查更改的内容以及所有内容是否仍然有效。