单凭git revert 是行不通的。必须指定-m,我对此很困惑。
以前有人经历过吗?
- 看看这个问题的答案:stackoverflow.com/questions/2318777/…
- 相关:撤消Git合并?.
- 这里的链接是演示恢复合并提交的最佳示例:christianengvall.se/undo-pushed-merge-git
- 这是一个例子,说明git的设计与每个人使用的git-flow式工作流不匹配。如果您签出了develop,那么当然您希望恢复引入bug的2-commit特性分支,而不是长达数年的共享dev分支。用-m 1选择它感觉很荒谬。
- 只是我以前从未想到的另一个建议——如果分支机构的提交列表中有一个很小,那么您可能会觉得恢复单个提交比恢复整个提交分支更舒服。
选项指定家长号码。这是因为一个混蛋比一个亲戚更像一个亲戚,而他并不自动知道哪个亲戚是主人,哪个亲戚是你想要的一个分支。
当你看到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 |
在这种情况下,你会不会把树当成树在8989ee0和git revert -m 2中,就像树在7c6b236中一样重生。
为了更好地理解父母的ids,你可以:
ZZU1
和
- 从两个数字8989ee0,7c6b236,这一去。我如何会知道?
- 恢复后,我不想一想可以很容易纠正的源代码分支和合并了?单片机软件kernel.org下载/酒吧/ / / / /文档/如何Git & hellip;
- 而googling在寻找一个更好的解释,我发现这篇文章是一个伟大的工作,这一思想在大学相处的细节。我认为这是我读什么我寻找是复位命令后,由一队推。也许这将帮助其他人。atlassian.com Git教程/ / / & hellip;
- "如果你git log 7c6b236aruprakshit git log 8989ee0和运行,你应该知道答案。
- Git的日志-更多关于看到更多关于所有的日志和Git没有看到没有更多关于并购的历史。合并分支历史和分支树在合并后的目标和使它难出平原组成使用Git的日志
- 嗯,这真的很不好意义,全没有日志
- Git是气馁的推力,它可以工作在远程unintended覆盖。
- 这是一个很好的ismails"链接。我通常创建一个Git和补丁适用于它的原始出发点的reverted分支。本方法已经为我工作的人(被《时代fireworker where i工作Git)
- 你如何识别"西蒙的补丁,你需要申请吗?让我知道你的方式,我的方式是为您。我通常把它的分支和合并的源到目的地的哈希散列(哈希分支从分支出相同的哈希合并IU它什么的)。然后在解决冲突。这是一个错误的合并样做正确的现在。然后软复位到原来的哈希git reset IU学院合并。无论你现在未分期变化在你的工作空间是湖,你需要应用补丁。
- 这是不正确的,在所有的。一个分支合并到一个A Child分级,分期的支路,然后合并到主分支分支A,而不是只会做你的孩子恢复的一个分支。
- 什么是后-m数代表?为什么不git revert -m 2require a提交哈希(当我尝试usage: git revert [] ...I get it)?我应该运行git revert -m 2git revert 8f937c6 -m 1然后。
- 这是一个伟大的工作,要在除A合并几个提交反馈。恢复删除的只读和随后的合并,需要的是什么是通缉犯。建议:给一个良好的gitk和Visual的合并历史。
这是一个完整的例子,希望它能帮助某人:
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表示你喜欢回到第一个亲戚的树上。
第三条线将你的变更公诸于众,推到远程分支机构。
- 我相信在git revert已经创建的对象commited commit命令。那个不咬你将要输入的--no-commit旗
- 作为"delfic mentionned,提交已经托管的第一行(我需要一个验证信息:WQ)第二行是不必要的。
本来告诉过你如何回到一个混乱的故事,但你很重要的是,你要意识到这是如此的"你永远不想被混乱所吞噬的树。一个结果是,后者只会带来树木的变化,因为这些变化不是前者的祖先。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.只要你明白如果你再见到那个混蛋的话你就不能再把分支弄混了
- 但你可以让他们重新恢复。如果真的需要。
- 谢谢。一个非常有用的技术为undoing用例for a合并,由于一个bug,然后再合并说整个支部一旦错误是固定的,是一个普通的一个。
- 如果你喜欢我我想和目标,你可以重新恢复他们的合并,或改变你的reverted樱桃采摘。
- 在我的情况,我点击"恢复"和"恢复我的变化得到反馈的问题。樱桃采摘,可能是一neater方法吗?我会尝试下一次……
你可以遵循这些步骤,以反复错误的语气或复位你的远程分支,以正确的头部/状态。
检查远程分支到本地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"
复制分支机构复制的前一步
法国电力公司
展示所有的变化都是错误的一部分。
扭转所有的变化。
力推你的本地分行远程通知你的故事是清晰的,就像它在污染之前一样。法国电力公司
- 如果开发商在新开发并支持20合并?
- 当团队中有20个开发人员使用该分支时,我不会强制推送开发分支。:)在这种情况下,只执行revert commit是明智的。
- 这是一个很好的解决方案,当你自己工作或者你确信没有其他开发人员拉过你搞砸的承诺时。
ZZU1
为了保持日志干净,不发生任何事情(这种方法有一些缺点(由于push-f)):
ZZU1
"commit-hash-before-merge"来自合并后的日志(git log)。
- 提示:如果你是在你的公司做这件事,你可能没有权限。
- 不要对共享回购进行push -f。
有时候,滚动的最有效方式是退回和替换。
法国电力公司
用第二个例子(全部都有,你想回去的人,在名单上的错误之前),然后从那里回来。
法国电力公司
然后删除旧分支,复制新分支在它的位置上,并从那里恢复。
1 2
| git branch -D oldbranch
git checkout -b oldbranch newbranch |
如果它被播放,那么从所有的休息区删除旧的分支,推到最中央的分支,把它推回到所有的地方。
- 一个预警广播应该更显真是可怕的想法,这是缺乏知识。这将损坏的版本都是非常有用的,如果是唯一的分支和你工作的一个远程库GitHub你/ bitbucket)是只读访问。
- 浴室是不是修改config文件的推动下一个流生产。它不会腐败,它只是一个早期的承诺rebranch开关,它是在单轮移动指针到分支的早期版本。只希望它影响当地的仓库
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。如果你喜欢的话,你可以重新组合
- 除非你是唯一一个使用回购协议的人,而且你完全知道自己在做什么,否则任何涉及武力推动的事情都是一个坏主意。使用git revert还原,然后可能使用git revert还原(如果您需要再次恢复内容),这是一个更安全的选择。