一些在职的人发誓git pull --rebase
。事实上,即使有几个人在共享分支上工作,他们也不会git pull
没有它。
我理解这是rewrites history。事实上,我已经看到它说一个should never rebase on a public/shared branch。
我的问题:
与建议的欺骗可能存在差异:
我不是在谈论将 master 重新定位到功能分支中。我说的是几个开发人员在同一个功能分支上工作,执行git pull --rebase
,进行一些更改,推送(如果推送被拒绝,则执行另一个pull --rebase
等等。
答案 0 :(得分:3)
我们在工作流程中使用它。
如果你只在短期分支上使用它,那就相对安全了。您将在同事推送的提交之上重播您的本地提交(重写 历史记录)。
如果您要重新整理整个协作部门,那么与您的同事仔细协调符合您的最佳利益。否则,某人很容易失去工作。使用pull -r
,这非常困难。
答案 1 :(得分:1)
我们在工作流程中使用它。
只要您只修改未推送的更改,您只需重写自己的历史记录即可。
我认为:
fetch
和merge
,并且存在合并冲突。您不正确地解决它们并推送您的更改。当CI系统检测到错误时,您可以将其追踪到不正确的冲突解决方案(或者可能是冲突解决后的不正确测试),而不是不正确的初始编码/测试。如果fetch
然后rebase
,则会丢失冲突解决方案,并将其嵌入到您的一个或多个提交中。我确信人们有很多其他原因支持或反对,但对我来说,最重要的是这两个原因。
注意给任何即将大喊大叫的人,我完全错过了一些观点。我正在解决微观"开发人员日常工作和特色工作以及 - 用于rebase vs merges的工作流程。我没有从宏中解决这个问题"如何处理整个大型分支机构和级别的工作流程。我相信微观是OP所要求的。