我已经从较旧的分支创建了新的Git分支,而未检出到主分支

问题描述 投票:0回答:2

我一直在从旧分支签出到新分支,而不是签出到主分支。目前,我已经创建了四个新功能:home_feature,admin_user-feature,customer_request和blog_feature。

我忘记了在创建“ customer_request”分支之前先结帐到主服务器,并通过移至博客功能来创建功能。现在我面临很多冲突。我试过使用'git rebase',但是每个分支的提交最多可以进行80次提交,因此不切实际。如何解决这些冲突?

enter image description here

git git-commit branching-and-merging git-merge-conflict
2个回答
0
投票

您可以进行合并并仅解决一次冲突,而不是像重新定位那样可能要解决多次。

或者您可以让Git在发生冲突时自动选择您的更改或主控的更改。

例如,如果您进行了变基,则可以将ours(或ours)选项添加到递归合并策略中。

例如,以下命令将您的分支重新建立在master之上,并且对于任何冲突,它将选择your更改而不是master的更改:

theirs

git rebase master -Xtheirs theirs在这种情况下有点违反直觉。 ours将选择您的更改,-Xtheirs将从母版中选择更改。


0
投票

根据评论,这似乎是解决方案。您有三个分支:

  • 硕士(男)
  • 旧功能分支(O)
  • 新功能分支(N)

N是偶然分支的,而不是M,这是您想要的。这意味着从N的某个时间点开始有一系列提交,并且您希望使用这些提交重新创建分支,就好像您是从M分支出来一样。

解决方案是创建一个新分支:

  • 较新的功能分支(M中的N2)

然后从N确定一系列提交哈希,并将它们应用于N2。您可以依次轮流挑选每个人,手动进行操作。

存在这样的危险,因为与M相比,M可能更改了某些文件,因此它们不能完全适用,因此您在N中的工作将基于过时的文件/文件夹。然而,事实证明,它们干净利落。如果您无法执行此操作,则可能必须为每个失败的差异创建一个差异,并鉴于M的变化,查看如何将其手动应用于N2。在这种情况下,仍然值得尝试-选择以下提交,因为它们不一定都需要手动解决冲突。

© www.soinside.com 2019 - 2024. All rights reserved.