Git Commit 多次 只保留最后一次Commit 提价到远端仓库Push

@高效码农  August 1, 2024

使用 Git 的交互式 rebase 功能。以下是具体步骤:

1. 查看提交历史
首先,使用以下命令查看提交历史,确定要压缩的提交范围。

git log

2. 交互式 rebase
假设你想要将最后 3 次提交压缩成一次,你可以使用以下命令:

git rebase -i HEAD~3

这会打开一个文本编辑器,显示最近的 3 次提交。编辑器中的内容类似于:

pick f7f3f6d Change A
pick 310154e Change B
pick a5f4a0d Change C

将除第一行的 pick 改为 squash(或简写 s),这意味着你想要将后面的提交合并到第一个提交中:

pick f7f3f6d Change A
squash 310154e Change B
squash a5f4a0d Change C

保存并退出编辑器。Git 会提示你编写合并后的提交消息,你可以编辑这个消息,然后保存。

3. 强制推送
由于你修改了提交历史,如果这些提交已经推送到远程仓库,你需要强制推送(force push)这些更改。注意,强制推送可能会覆盖远程仓库中的历史记录,可能会导致其他人的工作出现问题。因此,在团队协作中使用这个功能时要特别小心,并事先与团队成员沟通。

git push -f

注意事项

备份代码:在进行重大历史修改之前,建议备份代码,或者在一个新分支上操作,以防出现问题。
团队协作:如果你在一个团队中工作,且其他人可能已经基于这些提交开始工作,进行强制推送可能会引起问题。

这样就可以将多次提交合并成一次,并推送到远程仓库。



评论已关闭