Git-保留由特定作者完成的提交

时间:2019-02-15 09:55:46

标签: git github version-control

我有一个正在工作的分支。

我的同事不小心将其分支合并到我的分支中,现在所有提交都到处都是。

我无法接受,因为有数百次提交。

如何仅将我的更改保留在分支中?

基本上,我正在寻找一种方法,将提交保留在分支上,并丢弃其他用户所做的任何其他提交。

2 个答案:

答案 0 :(得分:2)

除了Nivrutti PawarShakil所暗示的新分支解决方案之外,我建议您也可以将分支还原到其合并前的状态。

下面的明确步骤。


第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并在单个本地计算机中检查我们的所有动作,并且可以在混乱的行动,并开始一个新的分支。