浅谈git rebase命令 -- git修改历史提交信息
浅谈git rebase命令
如果你只想修改git log
命令打印到终端上的最后一个提交信息,那么使用git commit --amend
命令直接修改就好。
如果你还想合并最近的某几个提交为一个提交,并重新为这个化多为一
的新的提交信息的话,那么就要考虑使用git rebase -i HEAD~n
命令,注意其中n
是一个具体的数字,即你一共想合并的提交的个数。
例如如果n
为3
,则你会得到这样一个界面
根据下面的提示,修改上面那三个pick
,注意如果是squash
的话,第一个pick
是不可以被修改为sqush
的,因为第一个指的是,剩下两个提交是要合并到第一个提交里的,把第一pick
也改为squash
的话,那么git
就不知道该把这三个往哪合并了。
注意上面这个界面只是用来让你修改pick
的,其他的东西不需要动。
pick
,指啥也不变(我的理解)
reword
,指不合并,但是可以直接修改后面的提交信息,这里的直接修改不是在这个界面修改,这个界面只用来让你修改pick
的,其他的不要动。将第三行的pick
修改为reword
之后,保存并退出,git
会直接创建一个vim
会话窗口,此时你就可以修改提交信息了。
这里直接修改第一行的提交信息就行,其他的也不用动,然后保存并推出就完成了reword
的功能。
edit
,这个命令看似跟reword
差不多,但是不能随便用,因为如果你把第二行的pick
改为edit
,那么这里的意思就是丢弃第三行的提交,直接修改第二行的提交信息,保存并退出后,需要手动使用git commit --amend
去把修改窗口调用出来,然后才能修改提交信息;如果你后悔了,那么可以使用git rebase --abort
放弃本次修改。这里的git rebase --continue
的意思是,如果你不使用git commit --amend
修改提交信息,也不用git rebase --abort
放弃本次操作,那就默认不修改提交信息并完成本次操作。
所以这个命令有一定危险性,没想清楚不要随便用。
squash
,指的是将当前提交合并至上一个提交,注意因为是合并至上一个提交(范围在出现在这个界面的),所以第一行是没有上一个提交的,所以无法将第一行的pick
改为squash
。修改完pick
后就可以保存并退出,git
会自动弹出修改提交信息的窗口,把本来的多个提交信息修改为一个就可以了。(可以同时修改多个pick
为squash
,除了第一个pick
不能被修改以外,都可以修改为squash
)
fixup
,fixup
是仅仅丢弃提交记录,但是该次提交的已修改的文件不会变动,这个适用于合并两个分支时,两个分支都有变动,那么在合并的时候git
会自动创建一个提交记录,记录本次合并。如果没什么冲突,为了简洁,可以把这个自动创建的提交记录丢弃掉。
drop
, 顾名思义,丢弃,不仅丢弃提价记录还丢弃添加或者文件内被修改的内容。
注意,倘若你已经git push到上游了,那就不要修改提交记录了,会造成混乱。这只适用于本地修改完,但还未push的时候。
浅谈git rebase命令 -- git修改历史提交信息相关推荐
- 基于Git rebase修改历史提交信息
说明 关于为什么要修改历史提交的作者信息和提交信息,我就不多说了,也许是项目规范要求,也许是自己强迫症,总之是有这样的需求. 开始之前先说明一下: 本文介绍的方法只适用于本地仓库,提交到远程以后,我没 ...
- git 修改历史提交信息
当你不小心,写错了提交的注视/信息,该如何处理呢.理论上,SCM是不应该修改历史的信息的,提交的注释也是. 不过在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息 ...
- Git系列之修改历史提交信息
文章の目录 1.查看 git 提交记录 2.修改最近两个或者两次上的commit信息 3.扩展:修改上一次git commit 提交的信息 参考 写在最后 1.查看 git 提交记录 git log ...
- 【Git学习】使用git reflog 命令来查看历史提交记录并使用提交记录恢复已经被删除掉的分支
一.问题描述 昨天下午有个同事急急忙忙跑我座位上,要我帮忙,说他刚刚因为手误,将他本地的某个project的某个branch分支删除了,并且也将Gitlab上面的远程分支也删除了.他本来是想发起mer ...
- git历史提交信息和提交时间修改
git历史提交信息和提交时间修改 修改历史提交信息 修改历史提交时间 修改历史提交信息 执行:git rebase -i HEAD~10,这里的含义是修改最近10条数据 执行后会进入到修改界面,将要修 ...
- 浅谈git rebase和git checkout --ours(theirs)
先描述下场景. A在master基础上创建了个新的branch fix_bug, 并在fix_bug上进行了1次对foo.py的修改并提交78d4c5. B在master上直接进行了1次对foo.py ...
- git rebase命令(转)
转自: https://www.yiibai.com/git/git_rebase.html git rebase命令在另一个分支基础之上重新应用,用于把一个分支的修改合并到当前分支. 使用语法 gi ...
- git rebase 命令 常用_git命令之 git rebase 常用
git rebase 命令的功能很强大, 在<git 权威指南>一书里,改变提交(commit)的顺序,书中教了一种很复杂的方法,运用了git reset ... git cherry-p ...
- Git rebase 命令行操作
Git rebase 命令行操作 1.创建新分支(在需要进行rebase的分支上开辟新分支) git checkout -b rebase 2.进行rebase操作(master作为变基的节点,也可以 ...
最新文章
- Windows 2003 服务器播放FLV的问题解决
- C++和C#实现剪切板数据交互
- 关于MonoBehaviour的单例通用规则
- step5 . day5 网络编程 基于UDP协议的多人网络在线聊天功能
- 12123选牌漏洞_12123选牌漏洞是什么?新车牌号自编自选技巧
- Android之获取到音视频的时长后按格式(00:00或者00:00:00)显示
- 编写基于事件的CQRS读取模型
- MATLAB中的for循环
- linux先cd到mysql的运行路径下,Linux常用的服务器运维命令
- 华为云计算HCNA--存储虚拟化
- idea断点的几个意思_你真的理解Intellij IDEA的Debug技巧吗?这篇文章全部教给你...
- day6Linux命令-设置别名
- 雷达最大不模糊速度_雷达基础知识:案例计算
- centos服务器修改密码,linux centos默认的密码
- 人脸关键点检测face_landmark
- Java项目的项目流程(快速了解)
- AUTOSAR Network Wakeup(Can) Configuration
- Python 解多元高次方程
- 2021-10-18记录 MediaTek MT7620A 平台对应的类型
- 每位开发人员都应铭记的10句编程谚语
热门文章
- 文献阅读:SimCSE:Simple Contrastive Learning of Sentence Embeddings
- caxa电子图板2022软件
- 美国麦当劳“四川辣酱”将再次回归;“澳大利亚制造”巧克力要崛起;中国食品行业首个“零碳工厂”诞生 | 食品饮料新品...
- 使用tensorflow和Keras的初级教程
- 我的微信公众平台开通啦!
- 亵渎小说介绍_亵渎行不通
- 当你在Mac下载东西的时候,有时候因为网络或者其他问题中断了,双击重新下载会提示你“您所请求的资源没有权限”?
- 图像控制点 形变_基于控制点的图像变形方法的研究与实现
- 优秀的管理者都需要做好这四点
- DaisyDisk for mac(磁盘清理软件)中文版