【问题标题】:Git isn't merging my changes, although it says merge has been successfulGit 没有合并我的更改,尽管它说合并已成功
【发布时间】:2020-12-23 13:43:38
【问题描述】:

我把 Git 合并弄得一团糟,并试图撤消它。我想我已经成功了,现在我有以下几点:

master 分支 - 看起来就像在混乱发生之前一样。一切都承诺并推到原点。 dev 分支 - 看起来和混乱发生之前一样,并且有我需要合并的更改。所有内容都已提交并推送到原点。

所以,我想将 dev 分支合并到 master 分支。我可以看到(使用 git diff)几个文件存在差异。我正在使用 VS Code,所以我检查了 dev 分支并创建了一个合并到 master 的拉取请求。第一次执行此操作时,我收到一条消息说无法创建拉取请求,并出现错误“master and dev 之间没有提交”。

我做了一个虚拟更改并提交了它,并尝试了另一个拉取请求。这一个有效,但只将虚拟更改复制到主控。

所以,如果我检查 dev 分支并执行“git diff master”,我会得到一个跨多个文件的更改列表。但是,如果我尝试将更改合并到 master 中,我会收到有关“master and dev 之间没有提交”的错误。我做错了什么?

编辑:这是提交历史记录(为了清楚起见,我只是连续编号):

1(大师):提交并推送了一些更改,此时一切正常。

从这个提交创建了一个分支,我们称这个分支为“dev”

2(开发):进行更改、提交并推送到开发。

3(开发):进行更多更改,提交并推送到开发。

4(Merge):将 dev 合并到 master

意识到不需要为提交 3 完成的工作。还原提交 4,然后还原提交 3。

5(尝试合并):尝试将 dev 合并到 master,但收到错误消息“master and dev 之间没有提交”

从提交 3 创建新分支 (dev2)(以防它需要成为分支而不是提交)

6 (Attempted merge): 尝试将 Dev2 合并到 master,但再次收到错误“No commits between master and dev”

7 (Dev2):做了一个“虚拟更改”(只是更改了一些文本),提交并推送。

8(合并):将 dev2 合并到 master。这有效,但只更改了文本(虚拟更改),而不是其余文件。

【问题讨论】:

  • 你必须更好地描述你做了什么来“撤消它”。你的消息看起来很混乱,试着写下事实:我运行 git revert,我运行 git merge 等等......
  • 您确实需要更详细地描述问题,尤其是您做了什么,您看到了什么差异,以及您更改的文件是否被忽略。此外,“开发分支 - [...] 已提交并推送到主控。”完全没有意义。也许你的意思是它已经被推到上游/到原点?另外,如果您从 CLI 执行简单的 git merge 会发生什么? (而不是使用 VSCOde 进行 PR)
  • 另外,你一开始搞了什么“烂摊子”。描述你是如何到达那里的,你做了什么来撤销它等等。
  • 您能否根据masterdev 分支的当前历史记录更新您的问题?您可以复制/粘贴的第一行:git log --graph --oneline master dev origin/master origin/dev(如果您不想发布提交消息,可以编辑它们)

标签: git github merge


【解决方案1】:

我收到一条消息,说无法创建拉取请求,并出现错误“主服务器和开发人员之间没有提交”。
我做了一个虚拟更改并提交了它,并尝试了另一个拉取请求。这一个有效,但只将虚拟更改复制到主控。

只有当 dev 开始落后于 master 时才会发生这种情况。你有

*---D          dev
     \
      *---M    master

当然,存在差异,但它们都在 master 分支上。然后,您在 dev 上进行了虚拟更改,并合并了该更改。

【讨论】:

  • 看到我画我想象中的历史的方式了吗?以这种方式绘制您的实际历史,然后绘制您想要的历史。然后我们有一些具体的工作要做。要获得当前实际历史的不那么漂亮但更易于制作的再现,请使用git log --graph --decorate --oneline master...dev
  • 谢谢,我从您的原始评论中解决了这个问题 - 我对 master 进行了更改,但我没有将其拉入 dev。一旦我得到了最新的开发,它工作得很好。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2019-02-28
  • 2017-03-28
  • 2014-11-11
  • 1970-01-01
  • 2013-09-26
  • 2015-06-05
  • 2021-04-02
  • 1970-01-01
相关资源
最近更新 更多