Git 分支简单命令学习

基础篇

提交

git commit #提交命令

创建分支

git branch <name> #创建分支命令,其中<name>代表创建的新分支名
  • 注意:在没有<name>参数时,git branch命令将列出本地所有分支

切换分支

git checkout <name> #切换分支命令,其中<name>表示切换到的分支名

创建并切换分支

git checkout -b <name> #创建并切换分支命令,其中<name>表示创建并切换到的新分支名

该命令可以看成是由创建分支命令与切换分支命令的整合。

分支与合并

方法一:

git merge <name> #将<name>分支合并到当前所在分支

在使用git merge命令进行分支合并时,需要先切换到目标分支,再使用该命令进行合并。
示例:
假如已经存在主分支为master,现在需要新建一个分支名为new1并将该分支合并到主分支master中。(当前处于其它分支中

git branch new1  #新建分支new1
git checkout master  #切换到目标分支,此处为主分支master
git merge new1  #将new1分支合并到主分支master(当前分支)

方法二:

git rebase <name>  #将当前所在分支合并到分支<name>中
  • rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去;rebase 的优势就是可以创造更线性的提交历史。
    merge合并方法的区别:
  • 执行合并命令时所在当前分支不同,merge是将被合并的分支合并到当前分支(目标分支);而rebase是将当前分支(被合并分支)合并到目标分支
  • merge合并命令是合并两个分支并生成一个新的commit,不会删除原有的commitrebase合并命令是将被合并的分支合并到目标分支上,生成一个新的commit,并且会删除原分支上已提取的commit。这也是rebase可以创造更线性的提交历史的优势所在。

高级篇

HEAD

  • 简单来讲可以把HEAD理解为一个指针,它指向一个你正在工作的本地分支;也可以理解为当前指向分支的副本。如HEAD -> master表示当前正在工作的分支为master

相对引用 ^

  • 通过哈希值指定提交记录很不方便,因此git引入了相对引用。相对引用可以让我们从一个便于记忆的commit或分支开始计算。
    1.使用^向上移动一个记录
git checkout master^  #切换到master的父节点

上述命令执行图解

  • 也可以将HEAD作为相对引用的参照
  • git checkout HEAD^表示切换到当前HEAD指向的分支的父节点。
    2.使用~<num>可以向上移动num个记录

强制移动分支位置

  • 使用-f选项让分支指向另一个提交。
git branch -f master HEAD~3  #将分支master强制指向HEAD的第2级父提交

上述命令执行图解

撤销变更

  1. git reset通过把分支记录回退几个提交记录来实现撤销改动。(只适合在本地分支中使用
git reset HEAD~1  #将当前所在分支移回到该分支的上一次提交记录
  1. 由于git reset只适用于本地分支提交记录的改动,对于远程分支,我们需要使用git revert
git revert HEAD  

上述代码执行结果
结果中C2'C1完全相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值