IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git修补历史提交 -> 正文阅读

[开发工具]git修补历史提交

1.使用修补命令git commit --amend,用于对最新的提交进行重新提交以修补错误的提交说明或者错误的提交文件。补提交命令实际上相当于执行了下面两条命令:

git reset --soft HEAD^
git commit -e -F .git/COMMIT_EDITMSG

引用和暂存区会回退到上一次提交之前,从COMMIT_EDITMSG(文末有解释)获取提交消息并开始编辑。
2.先使用git reset HAED^^将HEAD指向待修复提交的前一个提交并保持工作区不变,这时就对工作区的文件或提交信息进行修改并提交,可以用实现对提交的压缩或拆分。
3. rebase -i交互式变基,可以修改git提交的过程,可以实现对提交重排、压缩、拆分、丢弃等操作。
例如,当我们发现最近5次提交都有些不尽人意,这个时候我们只要对5次提交的前一次提交进行伪变基,就可以进入交互式变基界面,可以对提交列表进行编排。
在这里插入图片描述
常用选项参数:
pick 应用此提交,默认值
reword应用此提交,可以修改提交说明
edit应用此提交,但是会在应用时停止,会打开外部编辑器,可以对其编辑
squash压缩,将此标记的提交和上一次提交压缩为一个提交
fixup类似squash动作,但是此提交的提交说明被丢弃,即已提交的说明被丢弃
drop移除此提交
提交列表的顺序可以编排,从该改变提交顺序
4.用git commit --fixup/--squash以及git rebase -i --autosquash修改历史,这种方法和上述第3种类似,只不过操作顺序上有点区别而已,这种方式是先提交,后修改历史;提交过程种标记上,然后再批量整理提交历史。--fixup--squash参数对新创建的提交来进行标记,新提交会包含前缀"fixup!"、“squash!”,这样的提交在提交整理时将会融合到它所修复的提交当中去。
git commit --fixup=<commit>创建对<commit>提交进行修正的提交
gti commit --squash=<commit>创建对<commit>提交压缩的提交
在提交了一系列修复提交之后,就可以使用git rebase -i --autosquash自动进行提交的修复。
git目录
.git/根目录
.git/hooks/存放一些shell脚本
.git/info/exclude仓库的一些注释信息
.git/logs/存放所有更新的引用记录
.git/objects/存放所有的Git对象,对象的SHA1哈希值的前两位是文件夹名称,后38位作为对象文件名。
.git/refs/存放了所有引用内容
.git/refs/heads/本地引用
.git/refs/remotes/远端引用
.git/refs/tags/标签引用
.git/CHERRY_PICK_HEAD使用cherry-pick命令会更新此commit
.git/COMMIT_EDITMSG最新一次commit所附带的描述
.git/config仓库的配置信息
.git/description仓库的描述信息
.git/FETCH_HEAD使用fetch命令后会更新此commit,用于组合操作中的引用暂存,pull会先fetch再merge
.git/HEAD当前检出的commit
.git/index暂存区(二进制文件)
.git/MERGE_HEAD使用merge命令会更新此commit,对应合并进当前分支的commit
.git/ORIG_HEAD指向操作前的Head,用于某些命令的回退
.git/packed-refs存放git运行垃圾回收机制后的一些引用,用于提高性能,垃圾回收不影响正常的Git功能,refs/文件夹下的一些内容有可能会被压缩到该文件内
.git/REBASE_HEAD使用rebase命令会更新此commit

切记:不要改变共享的历史记录

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:57:14  更:2022-04-22 19:00:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:04:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码