git:将最后三个提交压缩在一起
git: squash three last commits together
我想将我的最后 3 次提交压缩到一起(从 ax38aa 到 ax18aa)。
我有
commit ax18aa
commit ax28aa
commit ax38aa
commit ax48aa
commit ax58aa
代码
git rebase -i ax48aa
但令我惊讶的是,当我 git log 我只有
commit ax48aa
commit ax58aa
并且没有向 mi 询问提交的新消息。我能怎么做?请?
谁能帮忙
谢谢你,
可以这样做:
git reset --soft ax38aa
git commit --amend -m "some blahblah"
看起来您在交互式变基期间 squash
编辑了所有提交,使您处于 rebasing
状态。这意味着您当前正在进行变基,但尚未完成,只能看到最旧的两个提交 ax48aa
和 ax58aa
。摆脱这种情况的最简单方法是:
git rebase --abort
这将放弃您可能所做的任何更改,并将您置于变基之前的状态。如果有任何机会你仍然没有看到你所有的5次提交,然后用git reflog
查看reflog
,找到第一个提交并做git reset --hard ax18aa
.
现在再次做一个新的变基,但是这次,pick
oldest/top 你的交互式变基的最多提交。
git rebase -i HEAD~3
# or
git rebase -i ax48aa
然后执行以下操作:
pick ax38aa commit message 3
squash ax28aa commit message 2
squash ax18aa commit message 1
这会如你所愿。
另外请记住,在你变基之后,你将有一个新的提交,你将需要强制推送到你的远程仓库,以便上传你的更改!
我想将我的最后 3 次提交压缩到一起(从 ax38aa 到 ax18aa)。
我有
commit ax18aa
commit ax28aa
commit ax38aa
commit ax48aa
commit ax58aa
代码
git rebase -i ax48aa
但令我惊讶的是,当我 git log 我只有
commit ax48aa
commit ax58aa
并且没有向 mi 询问提交的新消息。我能怎么做?请? 谁能帮忙 谢谢你,
可以这样做:
git reset --soft ax38aa
git commit --amend -m "some blahblah"
看起来您在交互式变基期间 squash
编辑了所有提交,使您处于 rebasing
状态。这意味着您当前正在进行变基,但尚未完成,只能看到最旧的两个提交 ax48aa
和 ax58aa
。摆脱这种情况的最简单方法是:
git rebase --abort
这将放弃您可能所做的任何更改,并将您置于变基之前的状态。如果有任何机会你仍然没有看到你所有的5次提交,然后用git reflog
查看reflog
,找到第一个提交并做git reset --hard ax18aa
.
现在再次做一个新的变基,但是这次,pick
oldest/top 你的交互式变基的最多提交。
git rebase -i HEAD~3
# or
git rebase -i ax48aa
然后执行以下操作:
pick ax38aa commit message 3
squash ax28aa commit message 2
squash ax18aa commit message 1
这会如你所愿。
另外请记住,在你变基之后,你将有一个新的提交,你将需要强制推送到你的远程仓库,以便上传你的更改!