首页 > 其他分享 >git rebase合并多个commit

git rebase合并多个commit

时间:2023-06-30 17:22:53浏览次数:27  
标签:git rebase 合并 squash pick commit

一、为什么要合并commit?

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

 

二、什么是git rebase?

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

命令:

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

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

 

三、使用git rebase

1. 方法一:git rebase -i <主干commit hash>;

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)git push -f  推送。不要用vscode菜单,直接在终端输入命令。

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

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

 

标签:git,rebase,合并,squash,pick,commit
From: https://www.cnblogs.com/caoshufang/p/17517257.html

相关文章

  • git撤销commit未push
    1.使用参数--mixed(默认参数),如gitreset--mixed<commitID>或gitreset<commitID>撤销gitcommit,撤销gitadd,保留编辑器改动代码2.使用参数--soft,如gitreset--soft<commitID>撤销git commit,不撤销gitadd,保留编辑器改动代码3.使用参数--hard,如gitreset--hard<comm......
  • Git命令详细使用指南
    Git命令详细使用指南Git是一种广泛使用的版本控制系统,它可以帮助开发人员跟踪变更、协作项目和有效管理代码仓库。无论你是初学者还是有经验的用户,理解各种Git命令对于高效的代码管理至关重要。安装根据Git官方网站(https://git-scm.com)上提供的说明下载和安装Git。安装完成后,你......
  • JetBrains系IDE使用Git很慢的问题
    起因:在公司电脑上使用 IntelliJIDEA 的时候发现操作Git特别的慢,status、fetch、pull、checkout、commit等基础操作都执行的特别慢,下方的Task进度条一直处于等待中,等待差不多10秒多的时候才开始执行进度。最难以忍受的是,在Settings里面检查Git的版本操作都需要接近20多秒的时间,......
  • git笔记
    1、添加第一步:用gitbushhere打开需要上传的文件夹gitinit初始化本地仓库,这个时候会生成一个.git文件夹,说明初始化成功了。第二步:打开.git文件夹下的config文件,输入你的用户名和邮箱。[user] name=@blueskyfan [email protected]第三步:找到你的g......
  • 使用gitlab实现CICD
    一、概念介绍GitLabCI/CD是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:ContinuousIntegration(CI) 持续集成ContinuousDelivery(CD)   持续交付ContinuousDeployment(CD)  持续部署持续集成的工作原理是将小的代码块推送到Git仓库中......
  • gitlab-docker部署最终版
    下载gitlab镜像dockerpullgitlab/gitlab-ce:latest 运行mkdirgitlabgitlab/etcgitlab/loggitlab/optdockerrun-id-p3000:80-p9922:22-v/root/gitlab/etc:/etc/gitlab-v/root/gitlab/log:/var/log/gitlab-v/root/gitlab/opt:/var/opt/gitlab--restart......
  • Git修改时间格式
    在使用gitlog时显示的commit历史的内容如下commit023a85972244c2aed34c9fb6d696d03a07e147ceAuthor:yourname<youre-mail>Date:2023-06-29修改Git日期格式要修改全局的Git日期格式,你可以使用gitconfig--global命令来配置date.format选项。运行以下命令来修改全......
  • Tool-Gitlab-CICD
    Tool-Gitlab-CICDAttentionsudogitlab-runnerregisterLinuxexecutor:shellsudogitlab-runnerverifysudogitlab-runnerstartIntroductionhttps://blog.csdn.net/qq_42001163/article/details/122938040安装Gitlab-runner命令行添加官方GitLab存储库:$curl......
  • Git Credential Manger账号密码查看
      ......
  • git已经配置公司的git密钥,想再配置一个私人的git密钥关联github,如何设置
    如果你已经配置了公司的Git密钥,但是想在GitHub上使用私人的Git密钥进行身份验证,可以按照以下步骤进行设置:1.在本地计算机上生成一个新的SSH密钥对。你可以使用ssh-keygen命令来生成新的SSH密钥对,文件名起个其他名字,不要和默认的重复,例如:ssh-keygen-trsa-b4096-C"your_......