我有一个正在工作的分支。
我的同事不小心将其分支合并到我的分支中,现在所有提交都到处都是。
我无法接受,因为有数百次提交。
如何仅将我的更改保留在分支中?
基本上,我正在寻找一种方法,将提交保留在分支上,并丢弃其他用户所做的任何其他提交。
答案 0 :(得分:2)
除了Nivrutti Pawar和Shakil所暗示的新分支解决方案之外,我建议您也可以将分支还原到其合并前的状态。
下面的明确步骤。
第1阶段:找到合并提交(如果由于合并错误而没有采取任何措施,请直接进入第2阶段,并为HEAD^
使用<bad-commit>
)
# in case you're not presently on your branch
git checkout your-branch
# now we need to spot the merge commit where things went awry,
# it's probably not too far in your history, so spot its commit hash in the log
git log --oneline
在输出列表中,您应该能够确定错误合并的提交哈希是什么,对于示例,我将仅使用<bad-commit>
。
第二阶段:回顾历史
# Rewind history to the point just BEFORE the bad merge, so mind the caret
git reset --hard <bad-commit>^
这时您的分支处于合并之前的状态,但是您需要将其强制推送到远程以反映此新历史记录,因此请确保事先通知您的同事,然后< / p>
git push --force origin HEAD
(而且由于您并不孤单,所以也许可以在--force-with-lease
找一个look)
答案 1 :(得分:1)
我想用Nivrutti pawar添加一件事,在这种情况下,我们可以使用git-reflog
link并在单个本地计算机中检查我们的所有动作,并且可以在混乱的行动,并开始一个新的分支。