答完以后我只想吐槽下,这种操作还是命令行里来的方便。答案里提供了3种操作流程,个人习惯第2种方式,但这个只适合压缩最后n个commit的情况。第一种方式最佳,建议熟练掌握。第三种方式纯粹蛋疼,可以不看,但对理解git会有所帮助。用命令行的话,其实还有很多方法,但都不是常规手段了,对理解和学习运用git底层原理有帮助。

---------------------------------------------------------------------------------------------------------------

IDEA里的操作方式:(这种方式对应git rebase -i,是功能最强,适用最广泛的,掌握以后可以处理很多需求)

1.点击菜单VCS->Git->ShowHistory

2.在History页上点击Log

3.例子中有4个commit(将init commit看成第1个),假如要将上面最后2个commit(第4和第3个)压缩成1个,那么选中第2个commit(第3个的parent),右键菜单Copy Revision Number,把复制的commit sha1粘贴在一边,防止粘贴板内容被后续的操作覆盖掉

4.菜单VCS->Git->Rebase,勾上Interactive,Onto粘贴第3步中复制的commit sha1

5.在交互式rebase菜单中,将第一个选为pick,后面的都选为squash,点Start Rebasing

6.在Additional Rebase Input中编辑下压缩以后的commit message

7.完工

另外,可以用以下命令实现:git reset --soft;

git commit

IDEA里的操作方式:

1.同上

2.同上

3.选中第2个commit,右键菜单Reset Current Branch to Here

4.选择Soft,点Reset。这里选Mixed似乎也可以,IDEA中接下来的那个Commit Changes好像包含了git add的操作。

5.菜单VCS->Commit Changes,完成。

还有一种方式,利用以下命令实现:git checkout ;

git merge --squash;

git commit;

#记录下当前的commit sha1;

git checkout ;

git reset --hard;

IDEA的操作方式:

1.同上

2.同上

3.目标同上,假设要压缩的commit在master分支上,选中第2个commit,右键菜单Checkout Revision

4.菜单VCS->Git->Merge Changes,Branches to merge选择master,勾上Squash commit,点击Merge

5.菜单VCS->Commit Changes,选择要commit的文件,编辑下Commit Message,点Commit。如果警告说当前在detached HEAD状态,忽略,点Commit。

6.这时History的Log页面上可以看到以下状态,detached HEAD状态可以看成是一个无名分支

7.选中detached HEAD,右键菜单Copy Revision Number,最好粘贴在一边以防粘贴板被其它操作覆盖

8.选中master所在的commit,右键菜单Branch 'master'->Checkout

9.菜单VCS->Git->Reset HEAD,Reset Type选择Hard,To Commit填入第7步中复制的commit sha1,点Reset。完工。

idea取消comiit_IDEA 合并多次commit为一个?相关推荐

  1. Idea--git合并多次commit为一个(合并提交)--实例

    原文网址:Idea--git合并多次commit为一个(合并提交)--实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文用实例介绍如何合并git的提交.用Idea可视化和命令行操作两种方法进行展 ...

  2. git 相同commit_Git 合并多次 commit 、 删除某次 commit

    Git 合并多次 commit 有时候在一个分支的多次意义相近的 commit,会把整个提交历史搞得很混乱,此时可以将一部分的 commit 合并为一个 commit,以美化整个 commit 历史, ...

  3. git 合并多次commit

    如果当前分支提交了多次commit,无法merge到master上,就需要合并多出的几次commit 第一步 查看log: git log 通过log我们发现,我们想合并红框中的两次commit, 第 ...

  4. git 合并多次提交

    文章目录 1 为何要合并多次 commit 2 导致多次 commit 的场景 3 合并本地多次提交 3.1 做3次提交 3.2 开始合并 3.3 rebase 完成后本地 log 3.4 git p ...

  5. git合并多次提交为一次提交

    ** 背景 ** 有时候新人在git上提交代码时,如果不符合要求,会出现反复修改,导致提交次数过多,无法形成有效提交和回退,因为可能中间提交的版本有问题.所以查找一下是否有合并多次提交为一次有效提交的 ...

  6. git将一个分支合入到另一个分支

    git将一个分支合入到另一个分支 将分支a合入到分支b 1.首先需要切到分支b,然后pull一下,使b分支代码与远程b分支代码一致:准备就绪,在b分支下创建一个新的分支async/a-to-b // ...

  7. git合并多个commit成为一个commit

    git合并多个commit成为一个commit 在git使用中,可能会在合并代码的时候有大量的commit,如何能在合并分支的时候将许多commit转化为1个commit呢,可以使用以下命令: git ...

  8. commit分拆多个 git_git如何合并只有两个commit到一个?

    用rebase -i 比如下图的commit 历史,想要把 "Second change" 和 "Third change" 这两个commit合并到一起 那么 ...

  9. 详解如何使用git sqush合并多次未提交commit

    转自:https://www.cnblogs.com/dsxniubility/p/4460834.html 1.git squash技术 在使用git作为源代码管理器时,需要时不时将自己所作出的改变 ...

最新文章

  1. 使用VS Code新建编译Flutter项目
  2. ios开发学习-网络(Networking) 效果源码分享--系列教程
  3. 什么是云计算机服务器,云电脑服务器是什么
  4. Spring注解编程基石(二)
  5. 使用JPA标准@ViewScoped通过分页,过滤和排序进行Primefaces DataTable延迟加载
  6. NYOJ 2 括号配对问题
  7. R语言-merge和rbind
  8. 红帽linux怎么装文件夹,红帽linux怎么安装第三方字体?
  9. WordPress Citizen Space插件跨站请求伪造漏洞
  10. 家卫士扫地机器人好吗_扫地机器人哪个牌子好?市场最全智能扫地机器人品牌解析_扫地机器人...
  11. 人工智能与深度学习实战(4)——口罩佩戴识别(CNN)
  12. 颜宁追问4位男科学家:如何平衡事业和家庭?
  13. PPT封面怎样设计才更赏心悦目
  14. 辰信领创携手天津麒麟全力保障国产操作系统安全
  15. python 头条视频_今日头条python视频消重赞
  16. C语言编程>第二十三周 ② 请补充fun函数,该函数的功能是:交换数组a中最大和最小两个元素的位置,结果重新保存在原数组中,其它元素位置不变。注意数组a中没有相同元素。
  17. word表格复制到excel回车换行问题 1
  18. vite按需引入 Ant Design Vue 3.0
  19. 沈剑:技术核心管理者的时间,都只花在这 20% 的事情上
  20. CAS算法与ABA问题

热门文章

  1. 理解一下select 1 和 exists
  2. leetcode 373. Find K Pairs with Smallest Sums | 373. 查找和最小的K对数字(小根堆)
  3. leetcode 235. Lowest Common Ancestor of a Binary Search Tree | 235. 二叉搜索树的最近公共祖先(哈希表)
  4. 【Flask】jinja2根据url中的字符串,决定是否显示某个div
  5. netty系列之:netty中的ByteBuf详解
  6. rpc核心实现和原理
  7. leetcode -- 279. Perfect Squares
  8. 32行代码AC——L1-027 出租 (20分)(~解题报告~)
  9. 电脑计算机的硬盘那些可以删除吗,我的电脑出现多个可移动磁盘该怎么删除?...
  10. java转文件编码bom_编码转换:UTF-8 BOM to GBK