关于git:如何恢复已经推送到远程分支的合并提交?


How to revert a merge commit that's already pushed to remote branch?

单凭git revert 是行不通的。必须指定-m,我对此很困惑。

以前有人经历过吗?


选项指定家长号码。这是因为一个混蛋比一个亲戚更像一个亲戚,而他并不自动知道哪个亲戚是主人,哪个亲戚是你想要的一个分支。

当你看到git log〔1〕输出的一个混合物时,你会看到他的父母在Merge开始的线上列表:

1
2
3
4
5
6
7
8
9
commit 8f937c683929b08379097828c8a04350b9b8e183
Merge: 8989ee0 7c6b236
Author: Ben James <[email protected]>
Date:   Wed Aug 17 22:49:41 2011 +0100

Merge branch 'gh-pages'

Conflicts:
    README

在这种情况下,你会不会把树当成树在8989ee0git revert -m 2中,就像树在7c6b236中一样重生。

为了更好地理解父母的ids,你可以:

ZZU1

1
git log 7c6b236


这是一个完整的例子,希望它能帮助某人:

1
2
3
git revert -m 1 <commit-hash>
git commit -m"Reverting the last commit which messed the repo."
git push -u origin master

在这一答复的解释中,-m 1表示你喜欢回到第一个亲戚的树上。

第三条线将你的变更公诸于众,推到远程分支机构。


本来告诉过你如何回到一个混乱的故事,但你很重要的是,你要意识到这是如此的"你永远不想被混乱所吞噬的树。一个结果是,后者只会带来树木的变化,因为这些变化不是前者的祖先。This may or may not be what you want."GIT-Merge man page."

An article/mailing list message linked from the man page details the mechanisms and considerations that are involved.只要你明白如果你再见到那个混蛋的话你就不能再把分支弄混了


你可以遵循这些步骤,以反复错误的语气或复位你的远程分支,以正确的头部/状态。

  • 检查远程分支到本地Repo。法国电力公司
  • Copy the commit has(I.E.id of the commit immediately before the wrong commit)from GIT log法国电力公司

    output:

    commit 7cd42475d6f95f5896b6f02e902efab0b70e8038"Merge branch 'wrong-commit' into 'development'"
    commit f9a734f8f44b0b37ccea769b9a2fd774c0f0c012"this is a wrong commit"
    commit 3779ab50e72908da92d2cfcd72256d7a09f446ba"this is the correct commit"

  • 复制分支机构复制的前一步
    法国电力公司

  • 展示所有的变化都是错误的一部分。
  • 扭转所有的变化。
  • 力推你的本地分行远程通知你的故事是清晰的,就像它在污染之前一样。法国电力公司

  • ZZU1


    为了保持日志干净,不发生任何事情(这种方法有一些缺点(由于push-f)):

    ZZU1

    "commit-hash-before-merge"来自合并后的日志(git log)。


    有时候,滚动的最有效方式是退回和替换。

    法国电力公司

    用第二个例子(全部都有,你想回去的人,在名单上的错误之前),然后从那里回来。

    法国电力公司

    然后删除旧分支,复制新分支在它的位置上,并从那里恢复。

    1
    2
    git branch -D oldbranch
    git checkout -b oldbranch newbranch

    如果它被播放,那么从所有的休息区删除旧的分支,推到最中央的分支,把它推回到所有的地方。


    git-doc about git revert-m提供一个链接,详细解释如下: https://github.com/git/git/blob/master/documentation/howto/revert-a-错误-merge.txt


    正确标记的答案对我有用,但我必须花些时间来确定到底发生了什么。所以我决定为我这样的案例添加一个简单简单的步骤。

    假设我们有分支A和分支B。您将分支A合并到分支B中,并将分支B推到自身,所以现在合并是它的一部分。但您希望返回到合并前的最后一次提交。你做什么?

  • 转到Git根文件夹(通常是项目文件夹)并使用EDOCX1
  • 您将看到最近提交的历史记录-提交具有commit/author/date属性,而合并也具有merge属性-因此您可以这样看到它们:

    EDCX1

  • 使用EDOCX1和EDOCX1—您将看到这些父分支的提交历史记录—列表中的第一个提交是最新的提交。

  • 使用你想要的提交中的EDOCX1-4,转到你的git根文件夹,使用EDOCX1-5,它将从你在合并之前选择的最后一次提交开始创建一个新的分支。喂,准备好了!

  • 我发现在两个知道的终点之间有一个反面的标记,并应用这个标记。这是你从你的主人分行或甚至从你的主人分行后退创作的一个标签,说你的主人。

    说你把密码分支搞砸了是神话代码

  • 检查大师
  • 在硕士和后备之间创建一个完整的二进制反向板。法国电力公司
  • 检查你的贴片法国电力公司
  • 标记的贴片法国电力公司
  • 如果你需要再把这个密码输入一次固定,你就需要在反向主人和检查支行法国电力公司法国电力公司
  • 你需要在这里找到反手的沙漏键法国电力公司
  • 现在你可以用你的神话编码器 fn微软雅黑确定问题,就像一次又一次的大师。

  • 所有的答案已经涵盖了大部分内容,但我会加上我的5分。 简言之,要提交的审查非常简单:

    ZZU1

    如果您有权限,可以直接将其推送到"主"分支,否则只需将其推送到"恢复"分支并创建拉请求。

    你可以在这里找到更多关于这个主题的有用信息:https://itcodehub.blogspot.com/2019/06/how-to-revert-merge-in-git.html


    如果你不想成为你想要的那个人,你就很难在路上融合。我发现在这里使用更多的命令。

    一旦你做出了艰难的复苏部分,你就可以推到远程分支,I.E.git push -f 经常被称为origin。如果你喜欢的话,你可以重新组合