git分支管理

1、理解分支

分支是git的杀手级功能之一。

分⽀就是科幻电影⾥⾯的平⾏宇宙,当你正在电脑前努⼒学习C++的时候,另⼀个你正在另⼀个平⾏宇宙⾥努⼒学习JAVA。
如果两个平⾏宇宙互不⼲扰,那对现在的你也没啥影响。不过,在某个时间点,两个平⾏宇宙合并
,结果,你既学会了C++⼜学会了JAVA

一个人--->分身--->合体,一个人

在版本回退⾥,你已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀
再来理解⼀下HEAD,HEAD严格来说不是指向提交,⽽是指向master,master才是指向提交的,所以,HEAD指向的就是当前分⽀。(HEAD->master,master->提交

master就是一个主分支。 

每次提交,master分支都向前移动一步

不断提交,master分支的线越来越长,而HEAD只要一直指向master分支即可指向当前分支

2、创建分支(git branch branchname)

Git支持我们查看和创建其他分支。

git branch:打印出当前目录下有哪些分支。

[zy@hcss-ecs-4716 gityum2]$ git branch
* master

注意:HEAD是可以指向任意一个分支的。被HEAD指向的分支,才是当前的工作分支。

所以这个”*“就代表当前HEAD指向的分支。

git branch branchname:创建分支。

[zy@hcss-ecs-4716 gityum2]$ git branch dev
[zy@hcss-ecs-4716 gityum2]$ git branch
  dev
* master

创建了一个dev分支。 

[zy@hcss-ecs-4716 gityum2]$ cat .git/refs/heads/dev
34d6a9a7260a3bc001a5bf43c933da9c39b08865
[zy@hcss-ecs-4716 gityum2]$ cat .git/refs/heads/master
34d6a9a7260a3bc001a5bf43c933da9c39b08865

发现,此时dev和master都是指向同一个的。都是指向当前最新的提交。

因为此时创建dev是在当前最新提交的基础上创建的,所以dev和master指向一致。 

3、切换分支(git checkout branchname)

git checkout branchname

[zy@hcss-ecs-4716 gityum2]$ git branch
  dev
* master
[zy@hcss-ecs-4716 gityum2]$ git checkout dev
Switched to branch 'dev'
[zy@hcss-ecs-4716 gityum2]$ git branch
* dev
  master

在dev分支上做事,修改ReadMe,然后切回master,看二者有没有区别。

[zy@hcss-ecs-4716 gityum2]$ ls
file2  file3  ReadMe
[zy@hcss-ecs-4716 gityum2]$ vim ReadMe 
[zy@hcss-ecs-4716 gityum2]$ git add ReadMe 
[zy@hcss-ecs-4716 gityum2]$ git commit -m "md ReadMe on dev"
[dev 1914287] md ReadMe on dev
 1 file changed, 1 insertion(+)
[zy@hcss-ecs-4716 gityum2]$ git status
# On branch dev
nothing to commit, working directory clean
[zy@hcss-ecs-4716 gityum2]$ cat ReadMe 
hello git
hello world
xxxxxxxxxxxx
hhhhhhhhhhhhhhhhhh
aaa on branch dev
[zy@hcss-ecs-4716 gityum2]$ git checkout master
Switched to branch 'master'
[zy@hcss-ecs-4716 gityum2]$ ls
file2  file3  ReadMe
[zy@hcss-ecs-4716 gityum2]$ git branch
  dev
* master
[zy@hcss-ecs-4716 gityum2]$ cat ReadMe 
hello git
hello world
xxxxxxxxxxxx
hhhhhhhhhhhhhhhhhh

发现:在dev分支下做了事,在master分支上是没有的。这就是分支管理。分头行动! 

4、合并分支(git merge branchname)

因为master是主分支,所以一般都是将其他分支合并到master上

首先需要切换到master分支:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夹心宝贝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值