develop branch
--> dashboard (working branch)
Run Code Online (Sandbox Code Playgroud)
我git merge --no-ff develop
用来将任何上游更改合并到仪表板中
git日志:
commit 88113a64a21bf8a51409ee2a1321442fd08db705
Merge: 981bc20 888a557
Author: XXXX <>
Date: Mon Jul 30 08:16:46 2012 -0500
Merge branch 'develop' into dashboard
commit 888a5572428a372f15a52106b8d74ff910493f01
Author: root <root@magneto.giveforward.com>
Date: Sun Jul 29 10:49:21 2012 -0500
fixed end date edit display to have leading 0
commit 167ad941726c876349bfa445873bdcd475eb8cd8
Author: XXXX <>
Date: Sun Jul 29 09:13:24 2012 -0500
Run Code Online (Sandbox Code Playgroud)
合并中有大约50多个提交,我想知道如何恢复合并,以便仪表板回到合并前的状态
第二部分是,如果我没有合并--no-ff
,我没有得到提交' 合并分支'开发'到仪表板 '..我怎么会回滚合并?
Chr*_*her 250
在其他问题中已经详尽地介绍了还原合并提交.当您执行快进合并时,您描述的第二个合并,您可以git reset
用来恢复到以前的状态:
git reset --hard <commit_before_merge>
Run Code Online (Sandbox Code Playgroud)
你可以找到<commit_before_merge>
with git reflog
,git log
或者,如果你感觉到了moxy(并且没有做任何其他事情):git reset --hard HEAD@{1}
stu*_*kad 104
从这里:
http://www.christianengvall.se/undo-pushed-merge-git/
git revert -m 1 <merge commit hash>
Run Code Online (Sandbox Code Playgroud)
Git revert添加了一个回滚指定提交的新提交.
使用-m 1告诉它这是一个合并,我们想回滚到主分支上的父提交.您可以使用-m 2指定develop分支.
Nic*_*rth 19
只需重置合并提交git reset --hard HEAD^
.
如果你使用--no-ff git总是创建一个合并,即使你没有在它们之间提交任何东西.没有--no-ff git只会执行快进,这意味着你的分支HEAD将被设置为合并分支的HEAD.要解决此问题,请找到要还原到的commit-id和git reset --hard $COMMITID
.
git reset -m 1 88113a64a21bf8a51409ee2a1321442fd08db705
git revert -m 1 88113a64a21bf8a51409ee2a1321442fd08db705
Run Code Online (Sandbox Code Playgroud)
但是可能会有意想不到的副作用。请参阅git-scm.com/docs/git-revert中的--mainline parent-number
选项
也许一种蛮有用但有效的方法是检出该提交的左父项,制作所有文件的副本,HEAD
再次检出,然后用旧文件替换所有内容。然后git会告诉您正在回滚的内容,然后您创建自己的还原提交:)!
如果您合并了分支,则使用拉取请求恢复合并,并合并该拉取请求以恢复。
我觉得最简单的方法是:
git revert -m 1 xxxxxx
使用(如果使用分支合并恢复)或使用(git revert xxxxxx
如果它是简单的恢复)来恢复“恢复” 归档时间: |
|
查看次数: |
309964 次 |
最近记录: |