在git进行项目版本管理时,经常会遇到如下的场景, 开发者针对feature/bugfix/ hotfix/refactoring进行开发时,在本地repo中进行了很多次commits,然而当当前开发结束时,开发者并不需要把所有的commits 都push 到远程git server 中,开发者可以选择需要的commits压缩成一个commit, 然后push 这一个或多个commit到远程git server 即可。具体的步骤如下:

  1. 使用git log 列出当前的commit history, 比如说
    commit 9aa25339cb4a5a5934a23daba31e7abc55c8ed76 (HEAD -> tryout-branch)
    Author: xxxx
    Date: Fri May 6 14:58:37 2022 +0200
    add test 10
    commit c1a374b26044761677e72b9e1a3a89446a520075
    Author: xxxx
    Date: Fri May 6 14:58:12 2022 +0200
    add test 9
    commit ab667547cd98b76c1245c2db0809ecc719e28b9e (origin/tryout-branch)
    Author: xxxx
    Date: Fri May 6 13:44:26 2022 +0200
    add test 8

  2. 使用 git rebase -i HEAD~3

  3. 弹出rebase窗口,
    pick ab66754
    pick c1a374b
    pick 9aa2533
    在弹出窗口内,将第二,第三行改为
    squash c1a374b (或 s c1a374b)
    squash 9aa2533 (或 s 9aa2533)

  4. 使用 git rebase --continue

  5. 则所有三行被压缩为一行

  6. 使用git push推送所有的更改去远程git server.

git 如何压缩多个commits 成一个commit相关推荐

  1. Git 如何合并commits成一个(squash)

    Git 如何合并commits成一个(squash) 方法一:使用git rebase 方法二:使用git reset 两种方法. 方法一:使用git rebase 本地先从upstream拉一个br ...

  2. git 几个commit点合并成一个commit点

    在用git做版本控制器的时候,经常会遇到以下情况: 1.在做1个功能的时候,你自己觉得代码没问题了,就本地commit,然后提交代码,在gitlab上发起和并请求,老大看完之后,觉得你还有修改的地方, ...

  3. 把多个不连续的commit合并成一个commit

    场景 1.多个commit是同一个功能(需求). 2.为了log信息更简洁. 3.代码管理更方便. 步骤 1.查看commit历史 2. 使用git rebase -i <需要合并的commit ...

  4. 使用git rebase压缩提交(commits)

    我使用 git 有一段时间了,但老实说,我很少关注凌乱的提交历史.最近在学习 git rebase ,想分享一下如何使用这个命令来压缩整理提交(Commits) 五步完成 简而言之,总共有五个步骤. ...

  5. VBA—压缩文件夹成一个rar压缩包

    应用背景:如果在一项工作中需要自动生成很多文件,然后再压缩 ,然后再进行上传等操作. 每次都手动压缩会很麻烦,所以可以加一点代码进行自动压缩rar文件. 说明: 1.思路就是调用cmd来做. (win ...

  6. 使用压缩软件将exe和dll文件打包成一个exe启动文件

    问题:以搜狗输入法的截图软件为例,如何将exe和dll文件打包成一个的exe可执行文件,即将该软件目录下的文件合并成一个可以独立运行的exe文件 解决:通过压缩软件,本文我使用的软件是2345好压.( ...

  7. 后端将多个文件压缩成一个zip文件

    将本地的E:\srcPath中的所有文件,压缩成一个.zip文件并存放在E:\outPath中: public static void main(String[] args) throws IOExc ...

  8. git如何合并多个commits

    git如何合并多个commits 使用场景 在分支开发的时候,我们经常会在分支上有多个commit,然而在最后开发完成合并到主干(或者发布分支)的时候,我们希望能把这些commit合并成一个,这样在主 ...

  9. Git 如何压缩 commit

    今天同事突然问我,由于在给老大的开源项目提 pr 的时候,自己比较长时间没有 rebase 的老大的项目 master 分支了,而自己提交的 commit 又很多,有些 commit 又是实验性质的, ...

最新文章

  1. 科学家发现跨越生命的重要门槛或许没那么难
  2. 有限状态机HDL模板
  3. row height
  4. JZOJ__Day 7:【普及模拟】max
  5. 悦虎四代洛达1562M固件下载升级更新
  6. 百度地图手机和电脑不一致_手机能下载北斗星导航吗?比高德地图和百度地图好用吗?...
  7. Codeforces205E Little Elephant and Furik and RubikLittle Elephant and Furik and Rubik
  8. 将 exe 文件反编译成 Python 脚本
  9. 模仿淘宝首页html+js+css(附带源码)
  10. 20190904_chip-seq/ ATAC-seq/DAP-seq 原理理解
  11. 【Jmeter+ant+Jenkins自动化持续集成】
  12. 让笔记本的无线网卡指示灯不再狂闪的方法
  13. python快递分拣_快递背后的黑科技,你造吗?
  14. 【UVM基础】工厂(factory)机制快速上手指南
  15. 通过WebView实现简单的浏览器
  16. QT常用控件——QComboBox控件
  17. 散列表查找为何如此之快
  18. 网站报错检查502 bad gateway是怎么回事?怎么解决?
  19. traceroute命令(unix)/tracert命令(windows)的工作原理
  20. spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during v

热门文章

  1. 通证经济是更高层次的自由
  2. android开发回合制游戏,10款安卓手机回合制网游排行榜
  3. Python设计模式之模板方法设计模式
  4. 前端和后端哪个工资高?工作内容和晋升空间差别大吗?
  5. L1-6 吉老师的回归 (15 分)(C/C++)
  6. 人之间的尊重是相互的_人与人之间相互尊重的古语
  7. mysql数据写入influxdb
  8. 本地字体库的引入方法
  9. Python repr() 函数 基本含义及用法
  10. 2022-2028全球与中国货运飞机ACMI租赁市场现状及未来发展趋势