git (fixup+rebase) 修改某个历史 commit
简述
修改某个历史 commit, 而不破坏其他 commits. 可参考如下做法:
参考做法
以如下 git log 为例,修改 de09c7e
该 commit :
... // latest commit
...
commit de09c7e0768026ba700c8c52a3eb8dafdb79bbe6
Author: xxx
Date: Tue Nov 10 15:42:26 2020 +0800feat: xxxcommit ff3380b6ed6669859fc02fd4c55e381ea7ce0c1f
Author: xxx
Date: Tue Nov 10 15:37:40 2020 +0800fix: xxx
...
... // older commit
本地针对 commit:
de09c7e
修改好提交修改到本地仓库
git add . git commit --fixup=de09c7e0768026ba700c8c52a3eb8dafdb79bbe6
这样本地会多出一个
!fixup
开头的 commit.--fixup=
后也可以接 HEAD~n, HEAD^n, commidID 等, 即:git commit --fixup=HEAD~n git commit --fixup=HEAD^n git commit --fixup=commitID
commitID 可以只选前 6 位
完成对 fixup 的 commit 的 rebase
git rebase -i --autosquash ff3380b6ed6669859fc02fd4c55e381ea7ce0c1f # git rebase -i --autosquash 命令中的 commitID 不应是需要 fixup 的 commit, 而是需要比 fixup 更老的 commit。
git rebase -i --autosquash
后也可以接 HEAD~n, HEAD^n, commidID 等, 即:git rebase -i --autosquash HEAD~n git rebase -i --autosquash HEAD^n git rebase -i --autosquash commitID
commitID 可以只选前 6 位
(CTRL+X) 保存即可
(可选) 后续
为了简化后续 rebase, 可配置全局的 rebase.autosquash
git config --global rebase.autosquash true
这样在本地 ~/.gitconfig
文件中会多出如下内容:
[rebase]autosquash = true
也可以手动修改
~/.gitconfig
文件
这样之后如下的操作:
git rebase -i --autosquash HEAD~n
均可以替换为:
git rebase -i HEAD~n
git (fixup+rebase) 修改某个历史 commit相关推荐
- 三分钟教你学Git(二十七) - 修改多个commit
比如我们又一个历史提交A->B->C->D, 当前HEAD在D commit上,我们想要修改B,C commits,该怎么做呢? 我们知道用git commit --amend可以修 ...
- git如何清空历史commit?
背景 因为之前做笔记都是在github上面,时间久了之后,commit的次数会很多,仓库的体积越来越大,这就导致每次需要clone的时候,需要等待很久才可以clone成功,花费了不少时间. 或者是当f ...
- 使用git_blame定位修改代码历史
使用git blame定位修改代码历史 git blame定义 git-blame - Show what revision and author last modified each line of ...
- 基于Git rebase修改历史提交信息
说明 关于为什么要修改历史提交的作者信息和提交信息,我就不多说了,也许是项目规范要求,也许是自己强迫症,总之是有这样的需求. 开始之前先说明一下: 本文介绍的方法只适用于本地仓库,提交到远程以后,我没 ...
- Git如何进行减少提交历史数量以及修改自己的commit中的邮箱
Git如何进行减少提交历史数量以及修改自己的commit中的邮箱 注:本节中内容来自 https://git-scm.com/book/zh/v2/Git-工具-重写历史 最终解释权归该页面编撰者所有 ...
- Git代码合并之使用 rebase 整理提交历史
Git 中整合来自不同分支的修改有两种方式:git merge 和 git rebase.本文主要介绍 rebase 的3种使用场景: 场景1: 使用 rebase 合并分支--整合分叉的提交历史 使 ...
- Git 修改已提交 commit 的信息
背景 由于 Github 和公司 Git 使用账号不一样,偶尔没注意,提交出错后就需要修改 commit 信息. 修改最后一次提交 commit 的信息 # 修改最近提交的 commit 信息 $ g ...
- git 批量提交修改文件_Git批量修改提交历史
有些时候我们可能需要批量修改提交历史,当然了,最近一次的提交历史很简单我们可以利用 git commit --amend 来进行最近一次提交的修改,如果你此时想要更新作者提交时间等也可以在amend之 ...
- Git小技巧——修改commit的注释内容——一看就会
在使用git提交commit时需要对本次代码改动进行简要的注释.但有时候需要这些注释进行修改.现在展示2种操作方式: 1.idea版 选择version control,然后选择log,之后选择想修改 ...
最新文章
- 如何解决Beyond Compare内容相同仍然标示红色
- CentOS Linux 系统命令之rmdir命令
- mysql hex 和 c_什么是MySQL HEX()函数,它与CONV()函数有何不同?
- linux系统安装升级win10双系统,Win10 安装Linux ubuntu-18.04双系统(安装指南)
- NKOJ2317 英语四六级考试
- 系统常用 Intent 合集
- 首次公开专利并且专利数量最多公司(2022.07.25-2022.7.31)
- 一个程序的自我修养「GitHub 热点速览 v.22.19」
- 计算机网络(第八版) 谢希仁——知识点
- 第23个520情人节,女程序猿送男朋友什么?
- 户外移动电源:华宝新能、EcoFlow上演“龙虎斗”
- 定投复利公式 php,基金定投收益计算公式和复利计算公式
- packet tracer 学习ARP报文请求
- 彩虹7色的RGB及CMYK值列表参考
- win10开始菜单打不开_windows10系统电脑开始菜单无法打开的解决教程
- 输入N,求N以内(包括N)的质数之和
- Linux基础命令入门
- 微软官方原版win7(64位/32位)旗舰版系统下载
- 成功销售员应该具备的10大素质(上)
- FX3U_定位控制_硬件连接
热门文章
- vb CommonDialog 属性
- 回忆那年那月(1997~2003)起篇---高复班的残余
- 联想电脑服务器未能登录,联想电脑输入开机密码后显示group policy client 服务未能登录,拒绝访问是为什么?...
- SystemUI快捷设置栏----横竖屏一行显示个数(2)
- 计算机专业范文推荐信,计算机专业留学推荐信范文
- CTEX安装教程与注意事项
- UltraEdit的免费激活方法
- ddr3ip核心_DDR3(2):IP核初始化
- 《思想道德修养与法律基础》总练习题及答案
- CC2530定时器时钟周期 频率 分频 计时器计时时长理解