【git】reset / revert / rebase
rebase
多个commit合并:rebase -i
- git rebase -i commit_id
- 将后续的commit_id前的字符改成f
- 保存commit 文件,则该commit后的所有commit都合成了一个commit
rebase其他分支
- 将“其他分支”更新到最新(git pull)
- 切换到当前分支,然后git rebase "其他分支名"
revert
主要作用是撤销某次commit的修改,会留下一个revert的commit记录
简单示例
git revert commit_id
reset
主要作用是回退到某次commit,该commit后的记录会全部被删除
简单示例
git reset --hard HEAD^ 回退到上个版本
git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard HEAD^^^ 回退到上上上个版本(同HEAD~3)
git reset --hard commit_id 退到/进到 指定commit的sha码
reset单个文件
git reset commitId needrevertfile
git checkout -- needrevertfile
git commit -m "revert old file"
详细用法
git reset [--soft || --hard || --mixed] HEAD [--filename]
- --soft 不删除工作空间改动代码
- --hard 删除工作空间改动代码
- --mixed 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
- HEAD
- HEAD 当前commit的版本(没有commit的不算);
- HEAD~1 || HEAD^ 上一个版本提交的版本;
- HEAD~2 || HEAD^^上两次提交;
- 也可以填commit_id
强推
强推到远程:git push origin HEAD --force

浙公网安备 33010602011771号