Git合并错误的方向

Qwe*_*rty 7 git merge

我已经完成了将一个devel分支长时间合并到master上,然后我意识到它本应该是一个devel更新,意思是方向应该是master - > devel.是否可以更改提交的目的地,以便箭头指向从主节点到开发节点?

注意:在文件中所产生的变化将是两个完全一样的d->mm->d.它只是最终的目的地(和历史中的箭头)是错误的.

现在: 在此输入图像描述 期望: 在此输入图像描述

blue: master
red: devel
Run Code Online (Sandbox Code Playgroud)

*未提交或推送更改.

概括

  • 我解决了devel-> master merge 中的所有冲突.
  • 我没有提交或推动改变.
  • 更改是在master之上进行的.
  • 我需要在master-> devel方向上应用已解决的冲突.

blu*_*112 6

恢复分支上的合并就像确定哪个提交是前一个提交一样简单.

首先,在要修改的分支上签出.这是一个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)

这应该够了吧.