git - 变基时排除提交

git - exclude commits when rebasing

我最近合并了一个尚未准备好进入 master 的功能。在没有意识到的情况下,我将糟糕的 master 重新定位到另一个好的分支。

但现在我不确定如何从我的其他故事中删除那些错误的提交。

这是我的 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 

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

git rebase --interactive 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