【问题标题】:Git: Weird phenomenon in commit conflictGit:提交冲突中的奇怪现象
【发布时间】:2017-09-29 11:36:30
【问题描述】:

我是 git 世界的新手,这是一个非常奇怪的提交冲突问题,它一直在我身上发生。我通过eclipse使用git。 这很奇怪,所以我试着简单地解释一下。这是我所做的

  1. 从远程到本地分支的签出源
  2. 对文件 A.java 进行了一些更改并执行了提交推送 创建了一个新的提交并将其推送到远程。一切都很正常。
  3. 确保没有人进行任何更改或推送新的提交
  4. 再次对文件 A.java 进行了一些更改并再次进行了提交推送
  5. 然后它告诉我当前的本地版本不是快进的并且引起了冲突,文件 A.java

这是历史

origin source ------- second commit-push

      |
      -------- first commit-push

第二个提交推送的父级不是“第一次提交推送”,这太令人困惑了。它不应该是“源头”吗?

而且这种奇怪的现象不仅仅发生在同一文件的连续提交推送中。每次提交推送都会发生这种情况。我创建的新提交推送从第二个最新提交而不是最新提交开始,如果我的提交和最新提交之间没有冲突,则会创建自动合并。

谁能告诉我发生了什么以及为什么会发生?

【问题讨论】:

  • 除非您拉取,否则您不能在本地发生合并冲突。那么,你也拉了吗?
  • 这令人困惑。我所描述的确实看起来像一个简单的错误。但是我确实拉动并确保我的本地是最新的,尽管我的本地已经是最新的,因为没有其他人在处理这个分支只有我。

标签: eclipse git git-commit git-merge-conflict


【解决方案1】:

第二个提交推送的父节点不是“第一次提交推送”,这太令人困惑了

如果其他人强制推送 (git push --force),就会发生这种情况,实际上是由他/她替换了您的第一个推送提交。

在这种情况下,最好的方法是git pull --rebase,它将在新的origin/master 之上替换您的本地提交,然后是git push

【讨论】:

  • 感谢您的回答。但是没有人,我很确定,因为只有我在处理那个分支。即使我确实在新的原点/主人之上替换了我的本地提交,这种现象仍然会发生......
  • 我对重新编辑我的问题格式感到非常感激。新来的,还有很长的路要走。
  • @Luke_Z 在命令行中执行相同的推送时问题是否仍然存在?你能做一个git config --global core.autocrlf false,再次克隆你的repo,将它导入Eclipse,然后再试一次吗?
  • 谢谢。我从来没有在命令行中尝试过。我会试一试。下周就要到了,但我会及时通知你。
  • 很抱歉,我无法在开发环境的 eclipse 中尝试命令行,因为这些插件在此处不可用。还有什么我可以做或只能通过 egit 检查的吗?
猜你喜欢
  • 2012-06-13
  • 1970-01-01
  • 2013-02-19
  • 1970-01-01
  • 2015-04-22
  • 2013-08-12
  • 2010-10-24
  • 2015-02-28
  • 1970-01-01
相关资源
最近更新 更多