解决本地仓库多次commit后如何push最新一版的代码到git仓库!

背景:之前在本地写完就git add.,git commit -m ‘…’ 到本地仓库,反复三次,最后想提交最新的一个版本到git仓库时,尴尬的发现一堆问题。尝试了很多办法后,下面给出亲测有效的解决方案。

大致原理是编辑变基文件,对多出的版本进行合并,保存并提交,然后使用强制推送完成

1、确定提交历史

使用git log命令先查看提交历史及要合并的提交
我需要提交hash值为6e的版本,但是目前中间隔了个a5版本导致没法直接提交,所以需要将6e合a5合并为一个提交,并找到这些提交的前一个提交3f,然后使用交互式变基来修改提交历史。

在这里插入图片描述

2、编辑变基文件

输入rebase命令打开编辑器,里面会实现类似于下图内容

git rebase -i 3f...
pick a5..01 First commit message
pick 6e... Second commit message
# .....
# .....

将你要合并的提交的 pick 改为 squash(pick 表示保留这个提交,squash 表示将这个提交合并到前一个提交中)

pick a5..01 First commit message
squash 6e... Second commit message
# .....
# .....

保存并按esc退出编辑 输入 :wq退出文件,此时git会自动合并这些提交,然后会打开另一个编辑器,你可以在这里编辑提交信息,以描述这个合并的提交。(我直接全部默认然后就退出了)

3、合并提交完成

可以使用git log确定提交历史已经按照自己的要求合并

4、推送更改

使用强制推送命令即可完成最新版的推送。

git push origin main --force

PS:也可以通过创建一个新分支将最新提交推送到服务器上,要不就老老实实的pull一次push一次。平时练练手推送项目可以用我这种方法玩。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值