Git 实践笔记

这里写自定义目录标题

一、将当前改动追加到某次commit上

  1. stash工作区中的当前改动 git stash
  2. 假设需要修改的commit是 f744c32,将HEAD移动到需要改动的commit的父提交上 git rebase f744c32^ --interactive,找到需要更改的commit,将行首的 pick 改成 edit,保存退出。

注意这个f744c32^,表示f744c32的父提交。这里有个前提:如果你想修改f744c32这个提交本身,就需要rebase到它的父提交。假设提交历史如下:

c 复制代码
A - B - C - D(HEAD) 

如果你想修改 B、C、D,用git rebase B^ --interfacegit rebase A --interface

  1. 执行命令 git stash pop
  2. 使用 git add 改动的文件 将改动文件添加到暂存区
  3. 使用 git commit --amend追加改动到第2步中指定的commit上
  4. 使用 git rebase --continue 移动HEAD到最新的commit处
    第3步中 pick 变 edit和第5步如果产生冲突,都会使变基操作暂停。如果有冲突会在这一步体现出来,手动解决冲突后,再次执行 git rebase --continue 即可完成rebase,以及针对目标commit的修改。
  5. 使用 git branch -f 分支名 HEAD 将本地分支强行切换到rebase后的头上。
    备注:使用 cat .git/HEAD 查看当前HEAD的指向

二、git 强制修改分支位置

git branch -f release_V6.5.0.0 HEAD~3
git branch -f release_V6.5.0.0 具体commit的哈希值

相关推荐
心中有国也有家10 分钟前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
玄米乌龙茶12316 分钟前
LLM成长笔记(三):API 开发基础
笔记
Upsy-Daisy17 分钟前
AI Agent 项目学习笔记(八):Tool Calling 工具调用机制总览
人工智能·笔记·学习
一只大袋鼠1 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
LuminousCPP2 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
一只机电自动化菜鸟3 小时前
一建机电备考笔记(40) 建筑机电施工—排水管道施工(含考频+题型)
经验分享·笔记·学习·职场和发展·课程设计
你干嘛?哎哟3 小时前
4月工作笔记
笔记
tom02183 小时前
软考中级《嵌入式系统设计师》全套备考资料(真题 + 教材 + 笔记)
笔记·嵌入式·软考·自学·电子技术·电子资料·变成
问心无愧05135 小时前
ctf show web入门156
笔记
咸甜适中5 小时前
rust语言学习笔记Trait(八)Iterator(迭代器)
笔记·学习·rust