``git pull - -rebase` 在特性分支上
``git pull - -rebase` on feature branches
我正在尝试稍微修改我的工作流程,我需要帮助来理解两种不同的场景。
场景一
正在使用
git pull - -rebase
在功能分支上,使它们保持最新。通常我会手动变基,但变基标志似乎有点仪式感。
场景二
手动重新设置 master 和
在 master.
上使用 git pull —rebase
这两种情况有什么区别?
分支可视化会很有帮助谢谢。
根据您的最新评论,您正在寻找以下两者之间区别的解释:
Rebase your feature branch directly off the upstream branch (scenario 1) vs rebase off a local master (scenario 2)
在场景 1 中,所有在功能分支上工作的用户都将通过基于功能的变基为功能带来新的远程更改。这大概意味着他们随后将快速转发远程功能分支及其更改。假设每个人都遵守这个工作流程,最终的结果将是一个完全线性的特性分支。当需要将该功能带回 master
时,您可以合并它或对其进行变基;选择将取决于您的喜好。但是,考虑到维护线性功能分支的开销,如果您想将整个功能变基为 master
,则此选项最有意义。这将使您的整个提交历史完整保留在最终的 master
分支中,这将使历史更易于阅读。
对于场景 2,首先必须注意的是,从本地 master
变基与在远程 master
上变基并没有真正的不同,因为 master
的本地副本应始终保持最新。因此,您正在描述 rebase 远程 master
上的功能。在这种情况下,使用该功能的用户将基于 master
,这可能与功能具有不同的基础。这意味着在变基之后,用户可能不得不强制将他们的分支推送到远程。这可能会给同样使用此分支的任何其他人带来问题。因此,对于多个用户可能同时在同一个功能分支上工作的情况,我不推荐方案 2。
我正在尝试稍微修改我的工作流程,我需要帮助来理解两种不同的场景。
场景一
正在使用
git pull - -rebase
在功能分支上,使它们保持最新。通常我会手动变基,但变基标志似乎有点仪式感。
场景二 手动重新设置 master 和 在 master.
上使用git pull —rebase
这两种情况有什么区别?
分支可视化会很有帮助谢谢。
根据您的最新评论,您正在寻找以下两者之间区别的解释:
Rebase your feature branch directly off the upstream branch (scenario 1) vs rebase off a local master (scenario 2)
在场景 1 中,所有在功能分支上工作的用户都将通过基于功能的变基为功能带来新的远程更改。这大概意味着他们随后将快速转发远程功能分支及其更改。假设每个人都遵守这个工作流程,最终的结果将是一个完全线性的特性分支。当需要将该功能带回 master
时,您可以合并它或对其进行变基;选择将取决于您的喜好。但是,考虑到维护线性功能分支的开销,如果您想将整个功能变基为 master
,则此选项最有意义。这将使您的整个提交历史完整保留在最终的 master
分支中,这将使历史更易于阅读。
对于场景 2,首先必须注意的是,从本地 master
变基与在远程 master
上变基并没有真正的不同,因为 master
的本地副本应始终保持最新。因此,您正在描述 rebase 远程 master
上的功能。在这种情况下,使用该功能的用户将基于 master
,这可能与功能具有不同的基础。这意味着在变基之后,用户可能不得不强制将他们的分支推送到远程。这可能会给同样使用此分支的任何其他人带来问题。因此,对于多个用户可能同时在同一个功能分支上工作的情况,我不推荐方案 2。