我能不止一次变身吗?

时间:2018-04-27 18:26:21

标签: git rebase pull-request

我正在重新引入git。我不熟悉变基,我想开始使用它。

我正在与之合作的团队不允许提交进入我们的主分支机构。我们必须创建一个功能分支,然后创建一个Pull Request。

当我是唯一一个在功能分支上工作的人时,我想让我的功能分支与master保持同步,并且我希望在创建pull请求之前最后提交我的提交。

所以,我的计划是在我的功能分支上工作,并定期使用(on?)master修改。当我准备提交拉取请求时,是否会在更改历史记录结束时保留所有提交内容?

5 个答案:

答案 0 :(得分:1)

是的,你可以不止一次变装。

在变基之后,你会得到一组新的提交。这些提交与所有其他提交完全一样,并且没有记录已经被重新命名的记录。

你需要注意的主要事情是rebase冲突的可能性。由于您经常更新,您可能会更频繁地发生冲突,并且需要更频繁地解决冲突。但只要你准备好处理它们,你应该没事。

答案 1 :(得分:1)

是的,你可以根据需要rebase多次。实际上,你想要做的是如此常见,pull命令有一个内置标志:

git pull --rebase

答案 2 :(得分:1)

在另一个分支上重新分支"重新应用" (现在相当聪明地)当前检出的分支的提交位于目标的顶端。

所以,是的,如果你一遍又一遍地做,那么你将保持你当前的分支是最新的。我认为这是一个问题的错字,但你不想" rebase master"但是,你想在主

上重新

有时候,你可能会遇到很多冲突,在这种情况下你可能应该考虑从这个特定的角度进行合并。因为必须从第一次提交开始修复冲突,所以在重新定位时解决冲突非常困难:如果进一步提交修改同一段代码,那么你将要做的第一次合并将产生冲突,依此类推。通过合并,您可以立即修复所有这些内容。但是,一旦你合并,你就必须继续合并。

答案 3 :(得分:1)

您似乎对该过程有正确的理解。我的团队的运作方式与您描述的相似,因为我们的团队负责人更喜欢在一个(最好是小的)提交中进行所有相关更改。

在我的功能分支上完成更改后,我确保我的本地master匹配我们的上游分支,然后git rebase -i master

这使得所有内容都与主人保持同步,-i允许我查看我的所有提交 - 并根据我的团队负责人的要求将它们压缩在一起。

就像你建议的那样,在提出拉取请求之前,变基始终是我的最后一步。

答案 4 :(得分:1)

就变基而言,您可以根据需要进行任意次数。但考虑到你的情况,在某些情况下不断地重新调整功能可能会导致问题。

考虑一个场景,其他一些分支说'A"由于某些依赖性而被合并到您的功能分支。现在,所有提交到此合并分支的提交(比如X提交数)将在您的功能分支中引入,以及一个额外的合并提交。 现在,如果您尝试使用master重新绑定功能分支,则将通过合并分支A引入的所有X提交进行重定位。因此,在此操作期间可能会发生X次冲突。

但是,将master合并到您的功能分支中会更好。在这种情况下,冲突只能发生一次,具体取决于功能分支和主分支的当前雕像。