Git基础教程(三)

Git分支

在git中使用分支非常简单,只需要使用Git branch命令即可:

$ git branch test   #新建test分支

此时使用git branch查看一下分支:

此时的确多了一个分支,但当前分支仍旧在master上,如果觉得自己起的分支名不够那么有规范,还可以修改分支名,使用git branch -m test develop,也就是说把test分支名改为develop,如果不需要develop这个分支,可以使用命令git branch -d develop删除。如果想要切换到develop分支上,使用git checkout develop即可。注意在删除分支的时候,除了当前所在分支无法删除之外,其他分支均可删除,如果想删除当前分支,需要先切换至其他分支上去。其中*号代表当前所处分支。

首先我们切换到develop分支,然后追加两个文件,并两次commit。

然后查看一些git记录

可以看出develop比master分支前进了两次commit,在这两次的commit中,新增了两个文件,如果想切换回原来的master分支,执行命令git checkout master,查看一下文件列表,

发现并没有增加的那两个文件,这是因为我们增加的这两个文件,是在不同的分支,只要切换回develop分支,文件就会出现了。

如果要切换回哪个分支,首先这个分支必须存在,如果没有这个分支,那么在git checkout分支的时候,加上-b参数就可以了。如果这个分支本身就存在,那么git回直接切换过去,如果不存在,Git回帮你创建一个,然后再切换过去。

Git切换分支的时候发生了什么

前面提到,在develop新增的两个文件,切换回master分支的时候就不见了,再切换回develop的时候就又出现了,其实不是将目录或者文件复制出来,改动之后放回去,在Git切换分支的时候主要做了以下两件事:

1.更新暂存区以及工作目录。

Git在切换分支时,会用该分支指向的那个Commit的内容来更新暂存区以及工作目录。但在切换分支之前,所做的改动则会留在工作目录中,不受影响。

2.变更HEAD的位置

除了跟新暂存区以及工作目录的内容之外,HEAD也会指向刚刚切换回去的那个分支。

假设现在还在develop分支,切换到master之前,新增了一个cat.html文件,同时也改动了welcome.html文件内容,此时的状态为:

当前的welcome.html状态为modified,而cat.html状态为Untracked,此时如果不commit就直接切换回master分支,会用该分支指向的那个commit的内容更新暂存区以及工作目录,但在切花分支之前所做的改动则会留在工作目录中,不受影响。

然后查看一下文件列表:

也就是说,切换分支并不会影响已经在工作目录中的那些改动。

合并分支

在上面的例子中,从master分支开了一个develop分支,并做了2次commit,现在我们任务执行的差不多了,就要准备合并回来了,如果想用master分支合并develop分支,那么就需要先切换回master分支,git checkout master,然后使用git merge develop进行分支合并。

然后查看文件列表

由于master分支已经合并了develop分支,所以在develop分支新增的文件也出现在了master分支。在这里推荐大家使用一个git提交记录的查看工具,具有可视化界面,能够清除的看到自己在哪个分支上,大家可以使用gitk命令,也可以使用qgit命令,两者都需要使用sudo apt install 进行安装。qgit界面如下,首先需要勾选三个复选框。

可以看到当前我们所处分支魏develop分支(高亮),且我们的master分支落后develop分支两次提交,此时我们merge之后,刷新一下该界面,查看一下。

在合并之后,其进度已经跟develop分支同步,并且,当前master的分支下的文件状态,已经跟develop分支完全一致,这是非常需要值得注意的事情。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值