1

在我的工作流程中,我有两个主要分支,master并且development.

我们最近决定重新定位developmentmaster因为我们masterdevelopment.

我们的目标是最终完全删除development并保留一个分支来改变我们的工作流程,因为它不适合我们的使用......

所以我们有一些冲突(在不同分支上开发 7 个月后正常),但有些人很奇怪......

例如,很多时候我们都有这样的事情:

$ git status
# On branch master
# Unmerged paths:
#   (use "git add/rm ..." as appropriate to mark resolution)
#
#       added by them:      X
#       added by us:        Y

但是对于added by us,该文件存在于master提交development中。你必须知道有问题的文件至少有10 个月的历史......

我的问题是:的确切含义是added by us什么?

一个好习惯吗rebase

4

1 回答 1

8

我假设这us意味着您当前的分支,以及them您当前正在变基的提交。但这实际上是一个很小的问题,因为:

你不应该改变 7 个月的工作量!!!

变基几乎应该只用于尚未推送的本地代码。如果您将其用于其他用途,您可能做错了什么。这是其中之一。

默认答案是合并,变基是特例。所以在这种情况下你也应该合并。变基的后果:

  • 您必须进行 100 次合并而不是 1 次并处理冲突 100 次而不是一次(rebase 中的每一步都是合并)
  • 你的历史完全是谎言。我确实假设您没有彻底测试每个重新定位的提交(因为这显然会很疯狂)。这样做的结果是,在稍后的时间里,那里的任何代码都可能不会真正起作用,甚至没有意义。有关冲突解决的信息也会丢失(如果您进行合并,它不会丢失 - 您可以通过对父母双方进行差异来获得它)。
于 2013-07-12T08:11:43.280 回答