压扁后如何修复git分支是dev背后的高手

时间:2018-06-23 06:59:16

标签: git git-squash

我已经创建了2个对远程dev分支的提交。我将其压缩并合并到远程master分支中。

现在,当我想继续处理dev分支时-我不知道如何正确“修复”我的分支-因为在创建了从dev到{{1 }}我会得到在先前的拉取请求中被压缩的所有提交的列表。

我有这样的东西:

master

如何使用提交Z从O ---- A ---- B ---- XY <--(master) \ X ---- Y ---- Z <--(development) dev来创建正确的请求请求?

2 个答案:

答案 0 :(得分:3)

在向您的dev分支添加新提交之前,您应该先将其重置为origin/master,因为您squashed/merge是开发者。

为了不破坏任何内容,请从origin / master创建一个新分支:

cd /local/repo
git fetch
git checkout -b newBranch origin/master

然后报告在该新分支上的新提交:

git cherry-pick Y..Z

最后,将您的dev分支重置为新分支:

git checkout dev
git reset --hard newBranch

然后强行推动:git push --force

最终结果将是仅包含新提交的新PR

答案 1 :(得分:1)

如果您无法正确确定 Y 提交,以防我们讨论更复杂的情况,从 XY 还原 master 提交也有效:< /p>

git checkout master
git revert XY
git push

那么您从 devmaster 的拉取请求将不再有冲突。