Git分支简介

Git分支是由指针管理起来的,所以创建、切换、合并、删除分支都非常快,非常适合大型项目的开发。

在分支上做开发,调试好了后再合并到主分支。那么每个人开发模块式都不会影响到别人。

1、创建、切换分支

创建并切换分支:git checkout -b <分支名称>

这条命令和下面两条命令效果相同。 
创建分支:git branch <分支名称> 
切换分支:git checkout <分支名称>

image.png

想要切换到master运行命令,即可

git checkout master

2、查看分支

git branch

image.png

3、合并分支

 git checkout master 先切换到master分支

git merge fenzhi 再将fenzhi分支的代码合并到master(在merge合并分支的时候,代码会有冲突,需要自己去解决这些冲突)

我们这边写一个demo

本地建立一个readme.txt里面内容为:
image.png

目前是master主分支,我们新建并切换到分支 git checkout -b fenzhi 然后将readme.txt 改变内容为
image.png

接下来我们运行 git merge fenzhi
看效果如下:我们可以看到分支内容与主分支合并了
image.png

4、删除与恢复分支

当分支已经合并到主分支,并且不再需要接着该分支继续开发(后期也可以从主分支分出来),可以删除该分支。

git branch -d <分支名称>

误删分支需要恢复

为了使分支图更加简明,可以加上一些参数。

git log --graph --pretty=oneline --abbrev-commit

image.png

使用git reflog 查出分支的提交号。

git branch <新的分支名称> <提交号(就是reflog前面的四位数)>

即创建提交号历史版本的一个分支,分支名称随意。可以看到我们删除的分支的内容又回来了
image.png
image.png

5、重命名分支

git branch –m 当前分支名 新的分支名
image.png



多人协作

当你从远程库克隆时候,

git clone git://github.com/wangwensha/git.git

也可以通过http 协议来访问:

git clone https://github.com/wangwensha/git.git

实际上Git自动把本地的master分支和远程的master分支对应起来了,并且远程库的默认名称是origin。
要查看远程库的信息 使用 git remote
要查看远程库的详细信息 使用 git remote –v

image.png

1、推送

git push origin master

image.png
image.png

我们减肥主分支的本地的成功的推送到了远程仓库上去,那么其他分支如何推送到远程服务器上去呢?不要着慌
我们依旧使用 git push origin 分支名称
比如我们分支叫fenzhi

git push origin fenzhi

一般呢我们先将分支的内容合并到主分支中,然后将主分支的内容提交到远程仓库中。

2、抓取fetch

多人协作时,大家都会往master分支上推送各自的修改。现在我们可以模拟另外一个同事,可以在另一台电脑上(注意要把SSH key添加到github上)或者同一台电脑上另外一个目录克隆,新建一个目录名字叫testgit2

假如小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支,并把分支推送到远程仓库中去了,(git checkout -b dev //创建并切换到分支
git push origin dev //将分支推送到远程服务器),此时巧合,你也对文件做了处理=,并且要推送 git pull 这是就会显示失败,git会提示我们先将仓库中的git pull最新提交的抓取下来,然后再本地合并,解决冲突,再提交
git pull之前先指定本地dev分支与远程origin/dev分支的链接,再pull:
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令

git branch --set-upstream-to <branch-name> origin/<branch-name>

git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再git push origin dev

在此,小编要总结一下业务流程:往往多人合作就会产生比较多的问题,我们要及时的提交 及时的更新,才会减少问题的产生,彼此之间逐渐形成一种默契度!
当你推送文件时,git push origin <推送的分支name>,
如果出现推送失败,远程仓库比你本地的新,你就要先用git pull试图合并。
如果合并有冲突,先解决冲突,并在本地提交。没有冲突后,再push提交代码
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
多人协作,基本上就会常常遇到这些问题,熟悉多了,操作多了,就很简单了,一眼就知道什么问题。大家不必觉得难以理解,熟能生巧嘛!

参考文献:git分支(存在意义和使用方法)链接在此

小编不易,如有收获,微信赏小编喝杯娃哈哈
image.png

单身狗的 葵花宝典,撩妹必备 敬请关注!
image.png


程序员的佼佼者
86 声望14 粉丝

优秀的人,都是相投的,哈哈哈哈