Git 将2压缩为1

Git 将2压缩为1,git,git-rebase,git-squash,Git,Git Rebase,Git Squash,我在本地有两项承诺: commit adae40c5e2b69a41447b08cc3dcb77003611fbbe Author: Me Date: Thu Mar 21 14:17:35 2019 +0000 1.0.0 commit ceaa65ea06f48dc24554a6f798aae2d668f3a43d Author: Me Date: Fri Feb 1 10:04:36 2019 +0000 first commit 如何压缩这些内容,以便只有

我在本地有两项承诺:

commit adae40c5e2b69a41447b08cc3dcb77003611fbbe
Author: Me
Date:   Thu Mar 21 14:17:35 2019 +0000

    1.0.0

commit ceaa65ea06f48dc24554a6f798aae2d668f3a43d
Author: Me
Date:   Fri Feb 1 10:04:36 2019 +0000

    first commit
如何压缩这些内容,以便只有一个提交消息
1.0.0

我尝试了以下方法,但均无效:

git rebase -i HEAD~2
git rebase -i master

对于那些不喜欢交互式重定基址的人来说,在这种情况下,倒带并重新提交也很容易:

git reset --soft HEAD~2
git commit -m "1.0.0"

您是否在打开的编辑器窗口中将第二次提交的
pick
更改为
squash
?在您的特定情况下,Romanvaleri的答案可能是最简单的解决方案。然而,理解为什么交互式重定对您不起作用可能是有用的,因为重定是一个功能更强大/更通用的工具,在许多情况下都会起作用,简单地重置+提交将不会重定在Git中是一个特别有用的功能,但它不会挤压提交,相反,它会保留每个提交。您设置的
重置
然后
提交
过程非常适合压缩提交历史记录。@benhorgen您说得对。我的回答不清楚,但我确实提到了交互式重定基调(然后在应该的位置选择
squash
),而不是“正常”重定基调。@benhorgen-我不确定你的意思。重基确实可以挤压提交。确实,在任何rebase之后都会保留原始提交(至少暂时保留),但rebase和recommit方法也是如此。