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的哈希值

相关推荐
峰顶听歌的鲸鱼12 分钟前
30.Linux DHCP 服务器
linux·运维·服务器·笔记·学习方法
一只小风华~35 分钟前
Vue Router 命名路由学习笔记
前端·javascript·vue.js·笔记·学习·ecmascript
不会kao代码的小王2 小时前
WaveTerminal+cpolar:命令行工具的远程协作新体验
笔记
老虎06272 小时前
黑马点评学习笔记01(手机号校验(正则表达式))
笔记·学习
JanelSirry2 小时前
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(二)
笔记·docker·kubernetes
小前端学徒2 小时前
重新修改未提交到远程分支不是最后一次commit的内容
git
执键行天涯3 小时前
idea中已经被git缓存追踪的文件,如何让git重新忽略
git·缓存·intellij-idea
举焰3 小时前
VSCode+MSVC+Qmake环境搭建笔记
c++·ide·笔记·vscode·msvc·qt5·qmake
岑梓铭3 小时前
《考研408数据结构》第二章《线性表(顺序表、链表)》复习笔记
数据结构·笔记·考研
hkhkhkhkh1233 小时前
Git push 失败(remote unpack failed: Missing tree)解决方案
linux·git