控制狂:提交被拒绝。 Bitbucket 中不允许 Foxtrot 合并

2024-01-10

究竟是什么原因Control Freak: Commit rejected. Foxtrot merges not allowed

我们经常收到此错误,这是由于以下原因的组合造成的pull, rebase and amend用户在提交时?

需要明确才能永久摆脱这种情况。我知道并理解分支已经分叉并且已经失去了踪迹,但是用简单的语言到底是什么导致了这种情况的发生是非常值得赞赏的

每次看到这个错误时,我们都要重新设置基准,这对我们来说是一个时间杀手。我们正在手动挑选更改以消除此问题。

如何识别提交的类型,例如之后的正确提交 rebase 或 pull 或修改,这到底是提交 谁?

我们希望教育开发人员走出类似的提交错误 今后。很想听听最佳实践。

另外,想了解像 git-bash/source-tree 这样的组合工具有什么理由吗?

我们是否可以通过任何机会关闭这个原因?


这与狐步舞合并 https://developer.atlassian.com/blog/2016/04/stop-foxtrots-now/,在 BitBucket 上特别禁止:

狐步合并是 git 提交的特定序列。一个特别邪恶的序列。在开阔的、郁郁葱葱的草原上,序列如下所示:

但狐步舞很少在公开场合出现。它们隐藏在树冠、树枝之间。我称它们为狐步舞,因为当它们在猛扑中被抓住时,它们看起来就像同名交谊舞的脚部序列:

Foxtrot 合并很糟糕,因为它们改变了 origin/master 的第一父历史记录。

合并提交的父项是有序的。第一个父级是 HEAD。第二个父级是您使用 git merge 命令引用的提交。

你可以这样想:

git checkout 1st-parent
git merge 2nd-parent

如果推动:

正如“GIT:如何防止我的“主”分支中发生狐步合并? https://stackoverflow.com/q/35962754/6309“, 犯罪 'D' 是狐步合并,因为 'origin/master' 是它的第二个父级。
这是拉取(获取+合并)的结果
一旦狐步合并 D 被推动……' 的第一父历史origin/master'不再包含提交'B'!

正如所解释的torek https://stackoverflow.com/users/1256452/torek in "如何避免git中的狐步合并 https://stackoverflow.com/a/55156429/6309”,这是直接工作的结果master(新提交C),并执行 git pull (而不是pull --rebase, 正如我总是建议的那样 https://stackoverflow.com/a/30209750/6309)

这将合并B and C into D(狐步合并),一旦推动,意味着origin/master不再有B作为直系祖先,但是C.
您的作品“C”现在成为主要发布的分支历史(origin/master), 代替B,降级为已合并的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

控制狂:提交被拒绝。 Bitbucket 中不允许 Foxtrot 合并 的相关文章

  • Git 提交到公共子模块(主分支)

    我有两个或更多项目 我们称它们为Foo项目 and 项目栏 有一些通用代码我放入了一个子模块 我的理解是 如果我从内部提交对子模块的更改Foo项目它将在一个超然的头脑中 只有所有Foo项目克隆人可以看到 master cd ProjectF
  • Git - “非单调索引”

    我正在本地电脑上克隆 git 存储库 在此过程中 该命令会输出大量以下错误消息 error non monotonic index git objects pack pack idx 例如 该消息保留在拉动或分支交换机上 但一切似乎都有效
  • Git 克隆已经是克隆的存储库

    做这个手术有什么副作用吗 git clone已经是另一个远程存储库的克隆的存储库 没有副作用 但您应该准确了解克隆存储库时会发生什么 一些理论 问题 是 当您 以正常方式 克隆存储库时 即在调用时没有调整任何时髦的旋钮git clone y
  • Git分支切换不会改变代码文件夹文件

    这是后续this https stackoverflow com questions 9406651 code base for git master feature branch问题 我使用克隆了远程主项目文件夹git clone ema
  • 可以使用 git 项目并在 VS2013 中查看 TFS 工作项吗?

    所以我升级到了VS2013 希望能顺利进行所有开发 不过有一件事确实让我很恼火 我的团队使用 TFS 而我更喜欢 git 因此我使用 git tfs 来桥接两者以进行源代码控制 我们使用 TFS 工作项来跟踪错误和故事等 如果重要的话 我也
  • 从 master 分支部署特定功能

    假设我们使用两个分支进行开发 staging and master 在迭代期间 所有团队成员所做的所有更改都会定期合并到staging分支并出现在我们的暂存环境中 客户能够查看更改并提供反馈 在迭代结束时我们合并staging分支到mast
  • git pull:无法快进,

    你能帮我解决我的问题吗 当我尝试从 dev 分支拉取时发生错误 我浏览了解决方案 它说我需要 rebase 但它对我来说没有成功 CT aohc MP1GYWQA MINGW64 c TCO source RAPMD Web Fronten
  • VS Code / Bitbucket / SSH - 权限被拒绝(公钥)

    我试图通过 ssh 从 vscode 访问 bitbucket 但总是得到权限被拒绝 公钥 SSH 密钥位于 ssh 公钥已正确设置在bitbucket settings security sshkeys 按键已经过测试并且可以工作 启动后
  • 为什么 iTerm2 中不显示 git 颜色

    所以我有我的 gitconfig 设置来处理颜色 在终端中它工作得很好 看起来也不错 然而 在 iTerm2 中 除非我为 git 设置反向属性 否则我的 gitconfig 根本不会显示颜色 然后它们就出现了 但是谁喜欢相反的颜色呢 为什
  • 如何给 Git 控制台着色?

    我最近看到gitWindows 中的控制台是彩色的 例如绿色表示添加 红色表示删除等 我如何为我的颜色上色git这样的控制台 为了安装它 我使用了以下命令 sudo apt get install git core As noted htt
  • 当存储在变量中时,Git 提交消息变得混乱[重复]

    这个问题在这里已经有答案了 我有一个 Git 提交 其中有一个摘要 然后是一些描述 所以当我看到提交消息时git log format B n 1
  • 在大型团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有何优缺点?

    我们希望在一个项目上一起工作 签出 签入文件 一些开发人员推荐 git 其他开发人员更喜欢 Mercurial 有没有人对这两者都有经验 并且能告诉我为什么我应该花时间在不与 Xcode 集成的 Mercurial 上 而不是只使用集成的
  • Visual Studio 代码中的“Git:gpg 未能签署数据”

    全新安装 Linux 后 我尝试设置我的环境 并且不断收到Git gpg failed to sign the data在本地提交更改时出错 我使用的是 Visual Studio Code 专有版本 而不是开源版本 gitconfig u
  • 是否可以在 Git 项目的所有分支中执行“grep 搜索”?

    是否可以运行git grep在 Git 控件源项目的所有分支中 或者还有其他命令要运行吗 问题 如何在 Git 历史记录中 grep 搜索 提交的代码 https stackoverflow com q 2928584 6309 建议 gi
  • 如何在git中定义ESC字符?

    我想在 git 输出中使用着色 例如 git log decorate color 当我发出这个命令时 我得到的输出看起来像ESC 1 32m where ESC是反色的 在我看来 这是一个有效的转义序列 除了 033必须发送而不是字符E
  • git 列出所有可用命令

    有没有命令可以显示 GIT 中所有可用命令的列表 有git help但它显示 usage git version exec path
  • 获得干净的 git 沙箱的最有效方法是什么?

    对于我的持续集成构建 我想确保我的 git 沙箱中没有存放任何杂散文件 并且没有任何文件被无意中更改 我知道关于git reset hard HEAD 这解决了部分问题 但我想我想做的是删除所有未跟踪和忽略的文件 我可以用蛮力的方式做到这一
  • 运行 npm install - 如何配置不使用 SSH(端口被防火墙阻止)

    当我跑步时npm install大多数模块配置正确 然而 至少有人想击中ssh 拉取模块的地址 不幸的是 我的公司有一项政策 不允许内部网络之外的 SSH 连接 我收到的具体错误是 Error while executing npm ERR
  • 如何快速查看哪个 Git 分支是最新的?

    例如 如果 git 上有 4 个分支 如下所示 branch1 branch2 current branch branch3 newest commits here master oldest 我的问题是 如何从 git 命令行检查我当前的
  • Mac 操作系统屏幕上的 Git 自动补全

    我在 mac 上使用 git 并配置了自动完成功能 如下所示http www codethatmatters com 2010 01 git autocomplete in mac os x http www codethatmatters

随机推荐