git log
揭示以下内容:
commit 1abcd[...]
Author: [...]
Date: [...]
[Useful commit]
commit 2abcd[...]
Author: [...]
Date: [...]
Merge branch [...] of [etc. etc.]
commit 3abcd[...]
Author: [...]
Date: [...]
[Useful commit]
合并提交对我来说没用——它不代表分支的有意义的状态,并且是从远程拉取生成的,所以我有远程历史的真实提交——不需要提交来标记我拉取的事实. 我想压缩这个合并提交。我做壁球的常用技巧是:
git rebase --interactive HEAD~2
(或者无论我需要走多远)
然后我会将它压缩到相邻的提交中。有时我会这样做,例如,我做了一个提交,意识到我错过了一个微小的重要细节(单个文件,或者没有更改其中一个文件中的一行),然后再做一次基本上只是一个快速的 oops 的提交。这样,当我将更改推回遥控器时,一切都很好,很干净,并且讲述了一个有凝聚力的故事。
但是,在这种情况下,当我运行git rebase ...
命令时,commit2abcd
不会出现!它似乎直接跳过2abcd
,而是显示1abcd
and 3abcd
。合并提交有什么特别之处可以防止它出现在 中git rebase --interactive
吗?我可以使用什么其他技术来压缩该合并提交?
根据@Cupcake的要求更新:
的输出git log --graph --oneline --decorate
如下所示:
* 1abcd (useful commit)
* 2abcd (merge)
| \ <-- from remote
| * 3abcd (useful commit)
| |
有帮助吗?