有没有办法通过比较分支来查看 GitHub 上的合并冲突?

Posted

技术标签:

【中文标题】有没有办法通过比较分支来查看 GitHub 上的合并冲突?【英文标题】:Is there a way to see merge conflict on GitHub by comparing branches? 【发布时间】:2015-11-20 05:50:58 【问题描述】:

我总是很难在 GitHub 上合并分支。我承认我不太精通 Git CVS,所以我宁愿使用 GitHub DesktopGitHub 网站 等可视化工具来实现我的目标。

我定义我们的开发流程的方式是有 3+N 个分支:

    master - 代表生产环境 staging - 表示暂存环境 开发 - 主要开发分支,我们都从这里创建功能/错误/修补程序分支

因此,每当人们想要开发某些东西时,他们都会从开发中创建一个分支并开始实施它。

当开发完成后,他们的特性分支然后被合并回开发,如果一切顺利,开发分支然后被合并到staging进行测试。

我知道,由于我们没有对 development 分支进行任何特定测试,因此我们可以轻松地丢弃它,我们只使用 master暂存 分支来完成同样的任务。 Staging 分支实际上正在测试中。轻微,但仍然如此。

现在我有一个开发人员,他现在创建了两个功能,每次我将拉取请求合并到 开发 时,我都遇到了合并它的问题。 问题是我不知道如何在网络上真正查看问题(例如比较分支)来告诉那个人如何做事,这样我就可以做实际的事情了工作而不是管理我们的代码仓库。至少令人沮丧...

所以每当我创建拉取请求时。 GitHub 告诉我,我有一些无法自动解决的合并冲突,但是我如何看到这些

实际上,鉴于我的可视化工具,我解决问题的最佳方式是什么?

【问题讨论】:

有什么理由不能在本地做git merge吗?这将向您显示所有冲突。之后您可以中止合并。如果您选择保留合并并解决冲突,则可以将分支推送回 GitHub,合并按钮将变为绿色,表示可以在远程进行合并。 @TimBiegeleisen:好吗?但是我如何在 GH Desktop 中做到这一点?如果我提出拉取请求,它会立即同步到 GitHub,因为我可以立即在网络上看到它。 我更喜欢使用 Git 命令行工具。您不能/不想使用它吗?当我需要对正在发生的事情进行细粒度的解析时,我总是发现 GitHub 缺乏。通常,GitHub 期望发出合并请求的人尽职尽责,并确保解决所有冲突。 【参考方案1】:

我不确定这是否有帮助,但 GitHub 最近有 released conflict resolution on the web interface:

如果您使用拉取请求,这将有很大帮助。如果您不这样做(笨拙),那么打开拉取请求只是为了查看冲突可能是一种矫枉过正的做法。好消息是,除非您有复杂的冲突(重命名/移动文件),否则这不仅会显示冲突,还会提示您解决它。

希望这会有所帮助。

【讨论】:

以上是关于有没有办法通过比较分支来查看 GitHub 上的合并冲突?的主要内容,如果未能解决你的问题,请参考以下文章

如何比较来自两个不同分支的文件

有没有办法通过 SMB 共享上的创建时间来枚举文件?

从 GitHub 上的特定仓库/分支安装扩展?

Github 创建新分支

Github 分支保护规则,设置分支名称的模式

如何区分 GitHub 中的两个分支?