我试图略微修改我的工作流程,我需要帮助来理解两种不同的场景。
情景1
使用
git pull - -rebase
在功能分支上,以使它们保持最新。通常情况下我会手动改装,但是反叛标志看起来似乎不那么典礼了。
场景2
手动重新关闭master和
在主人身上使用git pull —rebase
。
两种情景之间有什么区别?
分支可视化将非常有用。
答案 0 :(得分:1)
根据您的最新评论,您正在寻找以下区别的解释:
将您的功能分支直接从上游分支(方案1)与本地主服务器(方案2)的rebase重新定位
在方案1中,所有使用功能分支的用户都将通过重新定位功能为该功能带来新的远程更改。这可能意味着他们随后将通过他们的更改快速转发远程功能分支。假设每个人都遵循这个工作流程,最终结果将是一个完全线性的特征分支。当需要将该功能重新引入master
时,您可以将其合并或重新绑定;选择取决于您的偏好。但是,考虑到维护线性要素分支的开销,如果您想将整个要素重新定义为master
,则此选项最有意义。这将使您的整个提交历史记录保留在最终master
分支中,这将使历史记录更容易阅读。
对于方案2,首先必须注意的是,本地master
的重新定位与远程master
上的重定位并没有什么不同,因为master
的本地副本应始终保持最新。因此,您正在描述在远程master
上重新定义该功能。在这种情况下,处理该功能的用户将在master
上进行重新定义,这可能与功能有不同的基础。这意味着在rebase之后,用户可能必须强制将其分支推出到远程。这可能会给正在使用此分支的其他人带来问题。因此,对于多个用户可能同时处理同一功能分支的情况,我不建议使用方案2。