最新要闻

广告

手机

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

家电

git rebase合并多个commit

来源:博客园

一、为什么要合并commit?

一般要merge到master的时候才会有这个要求,清晰明了的commit有利于团队维护。


(资料图)

二、什么是git rebase?

含义:rebase的意思是变基,‘re’前缀在英语里是‘再’的意思,"base":基础。

命令:

  • pick:正常选中
  • squash:选中,会将当前commit与上一个commit合并
  • fixup:与squash相同,但不会保存当前commit的提交信息

命令还有很多,但需要记住的就有pick和squash,squash在使用时往往使用缩写就好:s。

三、使用git rebase

1. 方法一:gitrebase-i<主干commithash>;

2. 方法二:git rebase -i HEAD~5 合并最近5个。这里重点介绍方法二。

(1)控制台输入命令打开界面

#后面的注释是命令解释

在控制台输入 上述命令后会出现一个vim界面。按"i"健(insert:插入)开始操作。

(2)把除了第一行pick以外的所以pick改成s

这样第2行到第五行的commit都会合并到一行,5个commit就变成一个了,在此同时这个唯一的commit也会包括合并过来4个commit的信息。

(3)保存并退出

按esc键后,输入:wq ,按下enter键保存并退出vim界面。

(4)点击继续报错:"could not read log file ".git/rebase-merge/message""

重复第三步,按esc,输入:wq,按下enter退出保存。

观察分支,已经回到了正常的分支,终端也提示:Successfully rebased

(5)git commit --amend修改唯一一个commit的信息

git commit --amend -m "信息"

(6)gitpush-f 推送。不要用vscode菜单,直接在终端输入命令。

git push -f其实就是git push --force ,将自己的本地的代码直接推送到仓库,以自己的为准,其他人的会被覆盖。因为这个分支只有我自己在用,所以我就直接force了。

如果是和别人公用的话,则最好别用force,而是先合并代码,再提交。

关键词: