切换主题
Git
命令速查表
基础命令
创建分支:git branch
bash
# 创建 yui分支
git branch yui
切换分支:git branch
bash
# 切换到 yui分支
git checkout yui
# 创建和切换命令可简写为:
git checkout -b yui
提交分支:git commit
bash
# 提交分支(到本地暂存区)
git commit
# 修正提交
git commit --amend
合并分支:git merge
bash
# 合并 yui分支到 main
git checkout main # 先切换到main
git merge yui
合并分支:git rebase
bash
# 合并 yui分支到 main ==> 线性合并
git checkout main # 先切换到main
git rebase yui
分离HEAD
状态
HEAD
总是指向当前分支上最近一次提交记录,HEAD
通常情况下是指向分支名的(如yui
)。 可理解成链表,HEAD
为头节点,yui
为下一节点HEAD.next = yui
bash
# 分离 yui分支 HEAD
git checkout yui # 此时HEAD指向 yui
分离HEAD
可理解成链表,HEAD
为头节点,yui
为下一节点HEAD.next = yui
bash
# 分离 yui分支 HEAD
git checkout yui # 此时HEAD指向 yui
相对引用
^
指向上一级parent
提交,~<number>
指向上number
级parent
提交,也可直接使用-f
选项让分支指向另一个提交。
bash
# 将 yui分支的 HEAD 指向上一级 parent 提交
git checkout yui^
# 将 yui分支的 HEAD 指向上3级 parent 提交
git checkout yui~3
# 强制修改分支位置
git branch -f main HEAD~3 # 将 main分支强制指向HEAD的第3级parent提交
撤销变更
git reset
通过把分支记录回退几个提交记录来实现撤销改动(在 reset 后, 之前所做的变更还在,但是处于未加入暂存区状态。
bash
# 撤销本地提交
git reset --hard HEAD
# 撤销远程提交
git revert <commit>
高级命令
整合提交记录:git cherry-pick <提交号>
bash
# 记得先切换到目标分支,提交号(哈希值)可以是多个且有序
git cherry-pick P1 P4 P9
交互式rebase
:git rebase -i HEAD~
bash
# 手动选择,且有序
git rebase -i HEAD~3 # 在前三级parent提交记录里pick
永久锚点:git tag version <commit>
bash
# 不指定commit时,默认值为HEAD
git tag v1.0.0 yui
锚点描述:git describe <commit>
bash
# 不指定commit时,默认值为HEAD
git describe yui