【问题标题】:how to avoid foxtrot merge in git [duplicate]如何避免在git中合并狐步舞[重复]
【发布时间】:2019-08-04 22:50:39
【问题描述】:

我们最近遇到了一种情况,我们无法推送代码并收到指示“Control Freak...FoxTrot Merge”的错误消息

基本上,这是我们的源代码树-

Branch - A(这是起源/开发的孩子,不是起源/主人) 从 A 创建了另一个分支 B - 处理它 从 C 创建另一个分支

在几次提交后的某个时刻,它不会让我们将任何提交推送到 C 并抱怨 FoxTrot 合并。 我们检查了 bitbucket(企业)有一个钩子来阻止它。

我们通过创建另一个分支 D 绕过了这一点(因为我们确实必须推送更改)。

我们不知道我们是如何陷入这种境地的。 我们以后如何避免这种情况?

【问题讨论】:

标签: git bitbucket


【解决方案1】:

我将把它作为重复来结束,但“重复”问题本身只是定义狐步舞合并而没有解释为什么会发生

它们发生是因为git pull 意味着git fetch && git merge 而第二个git merge “狐步舞合并”。它将您的 工作视为主要分支,将某人其他人的 工作(在您开始工作之后在master 完成)视为次要分支,可能不是主分支。钩子的目的是防止人们在 master 上工作并像这样使用git pull

为了避免发生这种事情,你可以使用这个简单的规则(也许有点太简单但它有效):永远不要自己对 master 做任何工作

也就是说,之后:

git clone <url>
cd <clone>

您开始工作:

git checkout -b feature/tall

开发名为tall 的新功能。你,爱丽丝——嗯,这可能不是你的真名,但在这个例子中我有三个人在做事,所以我给你起了名字“A”——你自己做所有的工作feature/tall,而鲍勃和Carol 在他们自己的功能分支上完成所有工作,无论他们的功能名称是什么。

然后,当你的东西准备好时,你就去做:

git checkout master && git fetch && git merge

或者,如果你喜欢git pull(我不喜欢):

git checkout master && git pull

您现在已准备好合并您的功能:

git merge feature/tall

当合并完成时——在必要时解决任何合并冲突后——你可以再次推送:

git push

并且您的作品显示为非“狐步舞合并”。成功合并并推送您的工作后,您可以删除您的功能分支。与此同时,Bob 和 Carol 可以继续处理他们的功能,或者,如果他们在您之前完成,您的合并将在他们的合并之上。

【讨论】:

  • 支持有关如何登陆的说明。但是,我也在寻找如何追踪它到哪个提交可能导致我们可以避免的 foxtrot 合并。浏览了 github 的文档,它谈到了第一父母和第二父母,但我不清楚哪个开发人员的提交导致我们出现这种情况,以及为什么它只在少数提交和推送后才看到,而不是在第一次推送分支有这个问题。
  • @Rockoder:定期提交永远不会导致问题。错误地运行git merge 会导致问题(如果您认为这是一个问题),并且git pull 自动 错误地运行git merge。要找出是谁做的,请查看每个人的合并提交——但如果您使用的是带有防止推送此类合并的 bitbucket 挂钩的集中式存储工作流程,那么“谁”必须是您
  • 因此,如果 (a) 您认为这是一个问题,并且 (b) 您/您的团队已经这样设置了 bitbucket,并且 (c) 您在 git push 上收到错误消息,则表示 你跑了git pull不应该运行git pull:你应该运行git fetch,然后自己运行git merge,运行正确的合并而不是让git pull运行错误的合并。
  • 为什么你认为这不是问题?从我的阅读来看,FoxTrot 合并似乎很糟糕,不应该发生。同样在 bitbucket 上,默认设置是阻止它。有一个选项可以绕过 Foxtrot 合并。这是一个很好的选择吗?这会搞砸提交历史吗?
  • 我既不认为它问题,也不认为它不是问题。这更像是可能是问题的症状:用户盲目地运行git merge,特别是通过调用git pull而不了解它的作用。无论如何,这是否是一个问题显然是一个见仁见智的问题——有些人根本不在乎。也许他们应该,但他们没有。
猜你喜欢
  • 2016-06-28
  • 2015-04-29
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 2021-09-06
  • 2010-12-15
  • 2018-10-04
  • 2011-11-03
相关资源
最近更新 更多