理解github常用命令一(合并分支,引用移动,撤销提交)

一个有趣的学习github命令的小游戏

本文所有截图来自该小游戏,仅做个人学习记录,如有侵权请联系本人删除

github常用命令

  • git commit:提交命令,会创建一个新的提交记录;
  • git checkout branchName:切换分支到名字为branchName的分支上;
  • git branch branchName:创建一个新的分支,名字为branchName;
  • cat .git/HEAD: 查看HEAD指向
  • git symbolic-ref HEAD:如果HEAD指向了一个引用,可以用本命令查看HEAD指向

合并分支命令(*号表示HEAD指向的引用,也就是当前指向的引用)

  • git merge branchName:将branchName分支合并到当前引用指向的分支中,使用这个合并命令会保留有分支的历史记录。
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)

  • git rebase branchName:将branchName分支合并到当前引用指向的分支中,使用这个合并命令不会保留分支的历史记录,但会将分支合并成线性的结构。
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)

在提交树上移动

  • HEAD的概念
    理解github常用命令一(合并分支,引用移动,撤销提交)
  • git checkout 提交记录名:分离HEAD,让HEAD指向该提交记录,而不是指向引用
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)
  • git checkout branchName^:寻找指定提交记录的父提交
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)

  • git checkout branchName~2:寻找指定提交记录的父父提交,相当于git checkout branchName^^
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)

  • git branch -f master HEAD~3:将master引用指向HEAD的父父父提交记录,如下图
    理解github常用命令一(合并分支,引用移动,撤销提交)

撤销命令

  • git reset 相对定位:回退到定位的位置(只对本地分支有效,对远程分支无效)。相对定位如master~2,代表master引用指向的提交记录的前两个提交记录。
    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)

    • git revert 相对定位:回退到定位的位置(对远程分支有效)。

    理解github常用命令一(合并分支,引用移动,撤销提交)
    理解github常用命令一(合并分支,引用移动,撤销提交)