【问题标题】:Git merge conflictGit合并冲突
【发布时间】:2013-03-19 08:45:51
【问题描述】:

我最近开始使用 Git。我遇到了一些问题。我正在做一些我提交的事情,但是当我去推送提交时,我遇到了合并冲突。我按下了一些东西,不知何故,git 存储库以我的提交为头部,而在我的提交之前推送的工作没有被合并(由于冲突)。

有人可以指点我正确的方向吗?

我假设我需要以某种方式提取上一个提交(未合并),将其与我的合并,然后将两者都推回。

我还意识到,要处理合并冲突,我可以使用 meld 之类的工具。再说一次,我对此很陌生。

谢谢。

【问题讨论】:

  • “我按了一些东西”?你做了git push --force吗?否则,关于合并冲突,请参阅stackoverflow.com/a/7589612/6309
  • 没有。我认为发生的事情是,添加的文件是上一次提交中添加到我的人的人;但是,我在上一次提交中推送的代码文件的任何更改都没有反映在我的推送中。
  • 所以你基本上删除了之前的版本,并在其上进行了提交,然后你推送了它,对吧?
  • 在这种情况下,您不能将旧版本与git merge 合并回来,因为它会认为旧提交已经成为目标提交历史的一部分。让我检查一下还有哪些其他选项。
  • 最后一次结帐会尝试恢复当前版本(HEAD),但会看到索引的内容与HEAD不同(即master~2中的那个,例如):合并应该随之而来。

标签: git merge git-merge


【解决方案1】:

你可以试试:

# restore the old version of that file
# supposing it was 2 revisions ago on master branch
git checkout master~2 -- path/to/your/file

# merge it with the most recent version
git checkout --merge -- path/to/your/file

如果它不起作用,那么您需要在其他地方恢复该旧文件,然后手动将它合并到该文件的当前版本,添加并提交一个新版本(这次是,不会简单地覆盖旧版本)。

【讨论】:

    猜你喜欢
    • 2017-07-24
    • 2015-10-15
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2015-08-23
    • 2012-10-29
    相关资源
    最近更新 更多