Git 合并多次 commit 、 删除某次 commit
Git 合并多次 commit
有时候在一个分支的多次意义相近的 commit,会把整个提交历史搞得很混乱,此时可以将一部分的 commit 合并为一个 commit,以美化整个 commit 历史,可以使用 rebase 的方法来合并多次 commit,主要步骤如下:
1. git log 查看当前的提交历史
比如需要将以下 3 个 ”请假应用客户端代码优化“ 的 commit 合并为一个 commit;

2. git rebase 进行 git 压缩
执行 git rebase -i HEAD~4 对最近的 4 个 commit 进行 rebase 操作;

具体的操作下面的 Commands 说明得很清楚了,对于 commit 合并可以使用 squash、fixup 指令,区别是 squash 会将该 commit 的注释添加到上一个 commit 注释中,fixup 是放弃当前 commit 的注释;


编辑后保存退出,git 会自动压缩提交历史,如果有冲突,记得解决冲突后,使用 git rebase --continue 重新回到当前的 git 压缩过程;

3. 推送到远程仓库 git push -f
重新查看提交提交历史,会发现这些 commit 已经合并了,整个提交历史简洁了很多:

删除某次 commit
同样的,利用 git 压缩 rebase 指令来删除某个 commit,过程和以上是类似的;
在 git log 下,假如我们需要删除“请假应用客户端代码优化”这个 commit:

可以通过 git rebase -i HEAD~1 (对最近1次 commit 进行 rebase) 或 git rebase -i 9fbf10(对 commit id 前几位为 9fbf10 的 commit 之后的 commit 进行 rebase);

将需要删除的 commit 设置操作指令 drop ,保存退出即可;

在执行 git log 时,可以发现该条 commit 已经从提交历史中删除了;
Git 合并多次 commit 、 删除某次 commit的更多相关文章
- Git 合并多次提交
在合并分支的时候,希望将多次提交合并成一个,然后再 cherry-pick 到主分支. 合并分支 develop 分支做开发,可能会进行多次提交,但是在发布或者进行 PR 的时候,我们只希望看到一次提 ...
- git合并多次commit提交
在开发项目工程中经常会遇到为了一个需求产生多次提交记录.有些是可以接受的,比如按照功能点不同进行的提交.但往往会存在这种,只为了一个小东西进行改动,比如多余文件的提交.书写不规范而不得不提交的情况.多 ...
- git 合并多次commit
如果当前分支提交了多次commit,无法merge到master上,就需要合并多出的几次commit 第一步 查看log: git log 第二步 git rebase -i HEAD~2 对最近的两 ...
- git 删除、合并多次commit提交记录
合并多次记录 1. git log找到要合并的记录的数量. 2. git rebase -i HEAD~5 将最上面一个的记录选为pack,下面记录都改为s. ================= 删除 ...
- 使用git rebase合并多次commit
使用git rebase合并多次commit 聊下 git rebase -i
- git rebase的使用: 合并多次commit记录; rebase一个分支的起点
合并多次commit记录: good:https://blog.csdn.net/csdlwzy/article/details/83379546 使用 git log 命令查看提交历史: 想要合并前 ...
- git push报错大文件,删除后重新commit依然报错
git push报错: github不能上传大文件,按道理删掉重新提交就行了 可是删掉后,git add -A,再git commit,再git push,依然报错 后来我想明白了 github上传时 ...
- git 使用详解(4)—— commit -a -m/diff --staged/rm/mv
查看已暂存和未暂存的更新 实际上 git status的显示比较简单,仅仅是 列出了(修改过的.新创建的.已经暂存但未提交的)文件,如果要查看具体修改了什么地方,可以用git diff 命令.稍后我们 ...
- git commit 之后,撤销commit操作
撤销.修改commit 写代码过程中,如果已经git add [files] git -m commit [files],没有push代码到远程仓库,想撤销commit,可以根据实际情况,使用以下参数 ...
随机推荐
- Python Django 学习 (二) 【Django 模型】
注: 由于自己排版确实很难看,本文开始使用markdown编辑,希望有所改善 官方定义 A model is the single, definitive source of information ...
- codeforces-1114F-线段树练习
https://www.cnblogs.com/31415926535x/p/10391639.html 概述 这是一道用线段树维区间值的一道题,,题意很简单,,就是对于给定的一个序列,,初始时每个数 ...
- Python常见下划线
python中常见的下划线意义 Python中常常使用下划线里对变量进行修饰,通常作为变量的前缀或者后缀出现,被修饰的变量一般存在特殊的用法: _XXX:不能被from module import _ ...
- 一款功能强悍的web磁盘管理工具 (A powerful web disk management tools)
https://github.com/kingAnyWHere/web-ftp web-ftp 一款功能强悍的web磁盘管理工具 (A powerful web disk management too ...
- zabbix 创建监控项
项目是在Zabbix收集数据的基础 ,所有项目都是围绕主机,找到创建的主机 点击 Configuration > hosts > ltems 点击 Create item Name:输入C ...
- php传入对象时获得类型提示
类的类型提示 - 将类名放在需要约束的方法参数之前 语法格式: public function write(ShopProduct $shopProduct){} 数组提示: public funct ...
- ftp不能登录报错
虚拟机装好RedHat后,准备使用filezilla连接,输入IP地址,root用户,密码,快速连接,报错: 530 Permission denied. 故障排除: 1.首先检查系统是否开启了vsf ...
- C#高级编程9 第17章 使用VS2013-C#特性
C#高级编程9 第17章 使用VS2013 编辑定位到 如果默认勾选了这项,请去掉勾选,因为勾选之后解决方案的目录会根据当前文件选中. 可以设置项目并行生成数 版本控制软件设置 所有文本编辑器行号显示 ...
- 标 题: [心得]传统IT转互联网面试经验分享
发信人: lgonnet (逃之夭夭), 信区: Java标 题: [心得]传统IT转互联网面试经验分享发信站: 水木社区 (Wed Jul 1 10:18:38 2015), 站内 统一回复一下 ...
- 独热编码和dummy编码的作用
参考这篇文章: https://www.cnblogs.com/lianyingteng/p/7792693.html 总结:我们使用one-hot编码时,通常我们的模型不加bias项 或者 加上bi ...