我已经完成了将一个devel分支长时间合并到master上,然后我意识到它本应该是一个devel更新,意思是方向应该是master - > devel.是否可以更改提交的目的地,以便箭头指向从主节点到开发节点?
注意:在文件中所产生的变化将是两个完全一样的d->m和m->d.它只是最终的目的地(和历史中的箭头)是错误的.
blue: master
red: devel
Run Code Online (Sandbox Code Playgroud)
*未提交或推送更改.
- 我解决了devel-> master merge 中的所有冲突.
- 我没有提交或推动改变.
- 更改是在master之上进行的.
- 我需要在master-> devel方向上应用已解决的冲突.
恢复分支上的合并就像确定哪个提交是前一个提交一样简单.
首先,在要修改的分支上签出.这是一个git-golden规则:你只能修改你所在的分支.
git checkout master
Run Code Online (Sandbox Code Playgroud)
然后,找出previous-master提交它,并强制master返回其先前的状态
git reset --hard <previous-commit-id>
Run Code Online (Sandbox Code Playgroud)
最后,合并吧
git checkout devel
git merge master
Run Code Online (Sandbox Code Playgroud)
如果你想要懒惰,你还可以做的是反转分支状态.
你仍然需要找到master的先前提交它.
然后:
git checkout devel
git reset --hard master
git checkout master
git reset --hard <previous-commit-id>
Run Code Online (Sandbox Code Playgroud)
这应该够了吧.