GitHub:合并后更改提交

时间:2018-10-17 07:34:24

标签: git github

好吧,这很愚蠢,我不明白我在这里缺少什么:

  1. 有一个存储库,我是唯一从事此工作的开发人员。
  2. 我创建一个分支,对其进行处理,进行一次提交(adb0ce3),将其推送,然后创建一个拉取请求以掌握。
  3. 我转到GH,转到PR,在提交视图中检查提交。提交(adb0ce3)在那里。一切都好!
  4. 我的同事只是合并了PR。
  5. 我转到master分支的提交视图。有一个提交与我的提交消息相同的消息,该消息指向我的PR,具有我所做的确切差异/更改。但是问题是提交ID不同(de5db73),当然,当我尝试同步本地存储库时,git抱怨

      

    警告:“ rad-branch”在来源时已删除,但似乎未合并到主服务器中

  6. 当我检查网络图时,我的分支还没有合并(我恢复了我的分支)! network graph

我不知道这里发生了什么。 AFAIK没有强制推动之类的功能。据我了解,它应该是一个简单的快速合并。它不时发生在我身上。有人知道这可能是什么问题吗?

更新: AFAIK没有壁球或类似的东西。事实证明PR与壁球合并了!

2 个答案:

答案 0 :(得分:3)

在我看来,您像是在压扁或变基,或者类似于为存储库启用的功能。

简单的合并将维护您的提交,并仅在master和您自己的分支之上创建一个新对象,并推进master。

您的描述意味着要进行某些配置以更改已设置的默认行为。查看仓库的设置,特别是与合并和提取请求有关的设置。

答案 1 :(得分:2)

GitHub实际上根本没有运行git merge。它们不能,因为GitHub上的存储库没有工作树。这并不是真正重要的答案,但是认识到GitHub不使用常规的Git命令将帮助您获得正确的心态:GitHub网页上的按钮并不完全像常规的Git命令一样。

GitHub所做的是在道德上运行git merge --squashgit rebasegit merge --no-ff如果接受并合并您的拉取请求的用户调用了最后一个请求,则您的提交哈希将保持不变,并且还添加了一个合并提交以实现此目的。但是,如果接受并合并您的拉取请求的用户使用其他两个操作之一,则您的提交将被(或删除)提交。相反,他们会添加自己的提交,该提交与您的提交类似,但有所不同。在这种情况下,您的提交不会合并,您必须丢弃自己的提交并切换到它们。 (这对他们(对GitHub 或接受拉取请求的人的而言)不是超级友好的,但这是您的选择。)