Git学习日记(四)

Git学习日记(四)

导语

在上一篇当中主要讲了一下本地仓库的操作,查看日志信息,以及使用git进行版本的前进和后退,还有比较不同版本文件以及如何恢复永久删除的文件。
在这一篇中我们主要介绍一下分支相关的知识

Git 分支

在业务开发的流程中为保证开发效率一般都会是多条线同时推进任务。就比如我们的APP标签栏一般都是4-5个标签,那么就不可能一个一个的去开发,而是把这5个标签的功能分配给五个人一同去开发。那么这个时候就需要分支的作用了。

master在之前我们的运行结果中我们会经常在命令行后看到有一个master。那么这个呢实际上就是一个分支。master是在初始化仓库后自动创建的。那么因为它是初始的分支,一般来讲我们都会把它当作主干,在最后合并分支的时候都会合并在master上。
在这里插入图片描述


分支的优点

创建分支除了可以提高我们的开发效率之外还有一个好处就是允许试错。
分支是可以创建很多个的而且他们之间互不影响,也不会对主干产生影响。如果开发失败或是其它问题。直接删除分支就好,不会对主干产生任何影响。

另外就是在我们开发完成,已经在服务器上运行的项目,发现了bug,一般来讲不会关闭服务器,采取的方式就是创建一个分支修复bug,然后合并到主干上。修复bug的分支我们一般命名为(hot_fix)

分支相关的基本命令


命令功能
git branch查看当前分支
git branch [name]创建一个名为name的分支
git checkout name切换到名为name的分支上
git merge name把为name的分支合并到当前分支上
git branch

我们运行来查看一下
在这里插入图片描述
当然我们也可以通过添加一个参数 -v查看当前的版本信息
在这里插入图片描述


git branch [name]

在这里插入图片描述
可以看到这里有了一个新的名叫test的分支,当然我们也可以看到现在处于master主干上。


git checkout [name]

下面我们就来尝试切换一下分支
在这里插入图片描述
这里我们可以看到运行之后出现了一行切换到test的提示信息


git merge [name]

那么下面我们就尝试合并一下分支。
我们先来查看一下主干master上的文件版本,然后切换到test分支,对当前版本进行一下修改。最后合并查看一下效果。(这里呢,因为我们建立的test分支里边的版本就是master的版本,所以也可以不需要切换分支查看,直接修改即可)
在这里插入图片描述
切回到master,里面有两个py文件。在这里插入图片描述
运行一下new_code.py
下面我们切换会test分支
在这里插入图片描述
可以看到文件信息是一样的,那么下面我修改一下new_code.py中的内容,让它再打印一条hi python!
在这里插入图片描述
修改完成。下面就是添加暂存区,提交本地库的操作
在这里插入图片描述
需要注意的是,在合并分支之前需要先调整到被合并的分支之中。我们要合并到主干上,所以要先调整切换到master主干上(也可以把master合并到test分支上),然后使用merge命令将test分支合并到master主干上

可以看到提示信息,一个文件被修改,增加了一行。下面我们运行查看一下效果
在这里插入图片描述
对的,打印出了hi python!。


合并发生冲突

我们可以把不同分支的版本合并到主干上更新版本,如果有两个合并的分支,他们修改了同一个文件,那么这个时候git会怎么做呢。我们来查看一下。
我们可以直接修改master的文件然后再在test分支上修改,合并这两个文件

在这里插入图片描述
可以看到这是最开始的样子,下面我分别在两个分支下各增添了一个python注释
在这里插入图片描述


然后我们切回到master,使用merge命令进行合并
在这里插入图片描述
这时我们可以看到它的信息。
自动合并case.py
冲突(内容):合并冲突发生在case.py中
自动合并失败,修正冲突之后提交修正后的结果
同时我们也可以发现在master后面多了一个合并中的信息


这个时候我们运行程序,会发现运行不了,那么我们用vim查看一下
在这里插入图片描述
在这里插入图片描述
我们可以看到git在冲突的位置加了一些符号,这是不符号python语法的,所以导致py程序无法执行。那么这就是git提示我们有冲突的方式。如何解决呢?就只要删除git添加的符号。然后对于冲突的部分自行删减就可以了,这里呢我把两个注释都保留了
在这里插入图片描述
我们可以看一下修改之后的状态信息
在这里插入图片描述


直接提交试试
在这里插入图片描述
在这里我们发现了一个报错,这个是什么原因?在处于合并状态下的文件提交时不需要我们指定文件名。因为我们是在解决冲突,git知道是哪一个文件,所以我们提交时不能写文件名,我们去掉文件名再试试
在这里插入图片描述
可以看到提交成功了,而且在提交之后master后边的merging也没有了,说明我们解决了冲突,完成合并了。我们再查看一下结果,果然是两行注释都保留的状态。
在这里插入图片描述

小结一下

  • git的分支可以提高我们的开发效率,也允许开发试错
  • git的分支可以在项目运行时,不关掉服务器的解决问题
  • git可以有很多个分支
  • master是初始化仓库后自动创建的,所以一般默认它为主干
  • 在工程中修改bug的分支被称为hot_fix,因为不关掉服务器修改就会一直发热啊~~~
  • 在合并分支的时候要记得回到被合并分支上
  • 不同的分支不要对一个相同文件进行操作,不然会发生合并冲突
  • 发生合并冲突的时候,需要我们人工修改进行选择
  • 在解决冲突状态时,提交文件不要带文件名否则会报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值