可视化教程:https://learngitbranching.js.org/
好家伙
提交记录
1 分支 branch
- 创建分支 git branch 分支名
git branch -f 分支 提交哈希值
强行移动分支到提交节点
- 切换分支
git checkout 分支名
git checkout 提交哈希值
将head 和 最新的commit 分离- head 指向最新的一个 commit
- 创建分支并切换
git checkout -b <分支名>
1.1 分支合并 merge
- 现在有两个分支 各自对应一个提交记录
- 将bugFix合并到main
git merge bugFix
- 现在出现了一个新的提交记录 c4,有两个父节点
- 切换到分支 bugFix
git checkout bugFix
- 然后合并main 到 bugFix
git merge main
1.2 分支合并 rebase 会篡改合并历史 跳过
2 撤销
https://blog.youkuaiyun.com/yxlshk/article/details/79944535
2.1 head
- 可以使用head
- 也可以使用提交版本号(哈希值的前几位即可)作为参数
相对引用 ^ 和 ~
- ^
- ~ 后面直接跟数字
2.2 git reset 撤销本地分支
- 回退几个提交记录来实现撤销改动
- 回退目标版本之后的提交信息 全部删除
- 对远程分支是无效的
- –hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
2.3 git revert 撤销远程分支
- 用一次新的commit来回滚之前的commit
- 可以重做某一个提交记录
git revert head
3 其他
-
cherry-pick 挑选几某几个提交记录,放到当前分支上
-
git cherry-pick c3 c4 c7