git - 在变基时排除提交

时间:2015-06-04 14:27:48

标签: git git-merge rebase git-rebase

我最近合并了一个尚未准备好进入主人的功能。在没有意识到的情况下,我将坏主人重新安排到了另一个好的分支。

但是现在我不确定如何从我的另一个故事中提取这些糟糕的提交。

HERE是我的git日志文件

commit 15bb0d630f9b9cf59axxxxxxx8100d3a7302
Author: Moises Zaragoza <mZaragoza@xxxx.com>
Date:   Mon Jun 1 11:45:31 2015 -0400

    Some updates 


commit 3caf183afe3f5d7dcfxxxxxxxa239d44c8dfd11a
Author: Moises Zaragoza <mZaragoza@xxxx.com>
Date:   Mon Jun 1 11:45:31 2015 -0400

    Some updates 

commit 3c6c81c7a3215fcdxxxxxxxb56a5540745c397
Author: Moises Zaragoza <mZaragoza@xxxx.com>
Date:   Wed Jun 3 16:59:31 2015 -0400

    Bad Commit that should not be here 

1 个答案:

答案 0 :(得分:2)

如果您还没有推送代码,可以进行交互式rebase并删除提交:

git rebase --interractive 3c6c81c7a3215fcdxxxxxxxb56a5540745c397^

您最终会得到一个包含提交历史记录的编辑器:

3c6c81c7a3215fcdxxxxxxxb56a5540745c397 Bad Commit that should not be here
3caf183afe3f5d7dcfxxxxxxxa239d44c8dfd11a Some updates 
15bb0d630f9b9cf59axxxxxxx8100d3a7302 Some updates 

如果要删除提交3c6c81c7a3215fcdxxxxxxxb56a5540745c397,只需在交互式rebase中删除此行并保存:

3caf183afe3f5d7dcfxxxxxxxa239d44c8dfd11a Some updates 
15bb0d630f9b9cf59axxxxxxx8100d3a7302 Some updates 

请参阅http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History