Learn Git Branching学习随笔

一、提交与分支

  git commit  提交纪律

  git branch  简单地指向某个提交记录,*表示当前所在分支

  git checkout <name>  切换分支

  git checkout -b <your-branch-name>  创建并切换

二、合并分支

  1)方式1:git merge  产生一个特殊提交记录,包含2个父节点

    git merge <branch-name>  合并另一个分支到当前分支(当前分支包含了代码库所有修改)

    git chekout <branch-name>  & git merge master  切换到<branch-name>分支,并git merge <master>合并master到当前分支(<branch-name>分支也包含了代码库所有修改)

  2)方式2:git rebase  取出一系列的提交记录,复制,在另一个地方逐步放下去  *在<branch-name>分支上

    git rebase master 

    git checkout master

    git rebase <branch-name>

三、HEAD——指向你正在其基础上进行工作的提交记录

  通过hash值指定提交记录(git log 查看提交记录的hash值)

  git checkout <hash值>  分离HEAD

四、相对引用

  1)^:向上移动1个提交记录

  2)~<num>:向上移动多个提交记录

    git checkout master^  切换到master的父节点

    git checkout master^^   切换到master的第2个父节点

    git checkout HEAD^

    git checkout HEAD~4

    git chekout HEAD^2

    git checkout HEAD~^2~2

五、强制修改分支位置(移动分支)

  git branch -f master HEAD~3

六、撤销变更

  1)git reset  把分支退回几个提交记录,原来指向记录就像从来没提交过一样

    git reset HEAD~2  退回之后,本地代码库根本不知道有退回的这2次提交(对远程分支无效)

  2)git revert   撤销更改,并分享给别人(通过push到远程仓库)

七、整理提交记录

  1)git cherry-pick <提交hash值>...  将一些提交复制到当前所在的位置(HEAD)下面(需要知道提交记录的hash值)

  2)交互式rebase(不知道提交记录hash值时)

    git rebase -i HEAD~4  (1)调整提交记录的顺序  (2)删除不想要的提交  (3)合并提交

八、本地栈式提交

九、Git Tags——永久地将特定的提交命名为里程碑,标识特定位置(不随提交而移动)

  git tag V1 C1

十、git describe——描述tag

  git describe <ref>

posted @ 2021-10-11 11:41  simonalwayson  阅读(156)  评论(0)    收藏  举报