【问题标题】:GitHub Resolve Conflicts Lost Commit HistoryGitHub 解决冲突丢失的提交历史
【发布时间】:2017-01-31 09:48:46
【问题描述】:

你有没有遇到过这种情况?

我们的开发团队最近将我们的代码库和工作实践转移到了 GitHub,而不是使用 GitLab。我们的分支设置如下:

  1. 大师
  2. 分期
  3. 发展
  4. 单个分支 1 [将在此问题中称为分支 1]
  5. 单个分支 2 [将在此问题中称为分支 2]
  6. 单个分支 3 [将在此问题中称为分支 3]
  7. 等等……

我们遇到了这样一种情况,分支 1 完成了他们必须做的开发,但在合并回开发之前从开发分支向下合并到分支 1。他发现存在合并冲突,所以我使用了 GitHub 的 Resolve Conflicts 按钮(这将我发送到他们方便的网络工具以解决冲突......请参阅此处https://help.github.com/articles/resolving-a-merge-conflict-on-github/)。一旦发生冲突,他就从 branch1 向 Development 提出拉取请求,以便在合并前进行审查。我们注意到,尽管他的所有提交历史记录和代码在手动合并冲突消失之前所做的更改都已消失,但无法查看他的更改。更奇怪的是,他的代码似乎已经被合并到开发中,但没有发生这种情况的历史,所以我们不知道它是怎么发生的。

我们在 branch2 上遇到过类似的情况。从 Development 合并到 branch2 时出现冲突,使用 GitHub 上的合并工具,所有提交和代码更改的历史都消失了。然而,没有任何代码被意外合并到开发中。

branch3 也有合并冲突,但使用命令行 (GitBash) 解决了这些冲突,并且当他准备合并到 Development 时,提交历史仍然存在。

我们在 branch1 和 branch2 上遇到的问题可能与通过 GitHub 的合并工具有关吗?谷歌并没有太大帮助..

谢谢:)

【问题讨论】:

    标签: git github version-control merge


    【解决方案1】:

    这是由您合并和拉取请求时的步骤引起的。 拉取请求(PR)需要在合并之前。 PR 的目的是让其他人在合并真正执行之前对其进行审查。如果要将 branch1 合并到 Development 分支,可以基于 Development 分支创建拉取请求并比较 branch1。 PR 批准后,branch1 可以合并到 Development 分支。

    从 Development 到 branch1 的步骤合并是不必要的,如果您将它合并到 Development 则有害。我们可以用下图来说明:

    A---B---C       branch1
         \
          D---E     Development
    

    将 Development 合并到 branch1 后

    A---B---C---F    branch1
         \      /
          D---E      Development
    

    合并分支 1 到 Development 分支后,只导致分支 1 和 Develop 点提交。这是一个快进合并。

    A---B---C---F    branch1, Development
         \      /
          D---E    
    

    所以你只需要将branch1合并到Development分支,图表应该是

    A---B---D---E--- F’      branch1
         \          /
          ----C----     Development
    

    要将您的branch1和Development恢复到错误合并之前的状态(分别提交C和E),您需要以下命令:

    git checkout branch1
    git reset --hard <commit id for C>
    git checkout Development
    git reset --hard <commit id for E>
    

    【讨论】:

    • 谢谢你说得通!会告诉其他开发者! :)
    猜你喜欢
    • 2012-10-24
    • 2021-12-12
    • 2014-07-29
    • 2016-05-10
    • 2011-10-26
    • 2012-01-09
    • 2018-11-04
    • 2017-04-02
    • 2015-05-07
    相关资源
    最近更新 更多