主要命令
-
提交
git commit
-
创建新分支
git branch xx
git checkout xx
git checkout -b xx
-
合并分支
git merge xx
-
线性合并分支
git rebase xx
相对引用
-
分离Head
git checkout C4
-
相对引用
git checkout main^
main~<num>
-
强制修改分支位置
git branch -f main HEAD~3
将 main 分支强制指向 HEAD 的第 3 级父提交 -
撤销变更
git reset xx
git revert xx
移动提交记录
-
将一些提交(除HEAD上游))复制到当前所在的位置(HEAD)下面的话
git cherry-pick <提交号> ...
-
交互式的rebase,将提交重新排序以及删除
git rebase -i HEAD~4
杂项
-
本地栈式提交
git rebase -i
git cherry-pick C3 C4 C2 ...
-
对提交做一些小修改
git commit --amend
-
永远指向某个提交记录的标签(锚点)
git tag v1 <哈希值>
省略则指向HEAD
所指向的位置 -
描述离当前位置最近的锚点
git describe <ref>
-
查找产生Bug的提交记录的指令
git bisect
高级话题
-
多分支 rebase
git rebase xx yy
-
选择父提交记录
git check HEAD^<num>
支持链式操作git branch bugWork HEAD~^2~2
Git 远程仓库
-
在本地克隆远程仓库
git clone
-
远程分支 origin/main特性自动进入分离HEAD状态
git checkout o/main
-
从远程仓库获取数据,将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态,但不会更新main分支
git fetch
http://
git://
-
将变化更新到本地的工作中 (先抓取更新再合并到本地分支)
git pull
或者git fetch; git merge o/main
-
将本地变更上传到指定的远程仓库,并在远程仓库上合并新提交记录
git push
-
在远程仓库变更了以后更新我们的工作
git fetch; git rebase o/main; git push
或者git fetch; git merge o/main; git push
或者git pull --rebase; git push
-
远程服务器拒绝,策略配置要求 pull requests 来提交更新,需要新建一个分支, 推送(push)这个分支并申请pull request,推送到远程服务器. 然后reset你的main分支和远程服务器保持一致,否则下次你pull并且他人的提交和你冲突的时候就会有问题。
Git 远程仓库高级操作
- 合并特性分支
TBC…
参考
- https://learngitbranching.js.org/