开源概念和GitHub认识以及注册流程基础二(git分支)

370 阅读5分钟

分支的概念

image.png

分支在实际开发中的作用

在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发,例如:

image.png

master主分支

在初始化本地Git仓库的时候,Git默认已经帮我们创建了一个名字叫做master的分支。通常我们把这个master分支叫做主分支

image.png 在实际工作中,master主分支的作用是:用来保存和记录整个项目已完成的功能代码。 因此,不允许程序员直接在master分支上修改代码,因为这样做的风险太高,容易导致整个项目崩溃。

功能分支

由于程序员不能直接在master分支是进行功能的开发,所以就有了功能分支的概念。 功能分支指的是专门用来开发新功能的分支,它是临时从master主分支上分叉出来的,当新功能开发且测试完毕后,最终需要合并到master主分支上

image.png

查看分支列表branch(分支)

git branch

image.png

注意:分支名字面前的星号表示当前所处的分支

创建新分支

git branch 分支名称

使用如下的命令,可以基于当前分支,创建一个新的分支,此时,新分支中的代码和当前分支完全一样:git branch 分支名称

image.png

image.png

注意:当我们利用git branch login 创建了一个login分支之后,用户当前所处的还是主分支,而没有切换到login新创的分支当中

如何切换分支

git checkout 要切换的分支名称

image.png

image.png

image.png

可以看到我们已将将分支切换到login上。

分支的快速创建和切换

git checkout -b 创建并切换分支的名称

image.png

注意:"git checkout -b"是下面两条命令的简写形式:

  1. git branch 分支名称
  2. git checkout 分支名称
  • -b 表示创建一个新分支
  • checkout 表示切换到刚才新建的分支上

image.png

合并分支merge(合并)

git checkout 主分支名称 git merge 需要合并到主分支的分支名称 image.png

image.png

image.png

image.png

image.png

image.png

image.png 合并分支时的注意点: 假设要把C分支的代码合并到A分支,则必须先切换到A分支上再运行git merge命令,来合并C分支。

删除分支

git branch -b 分支名称

image.png

image.png

当如果我们还处在想要删除的分支时运行git branch -d命令时

image.png

遇到冲突时的分支合并如何解决

如果在两个不同的分支中,对同一文件进行了不同的修改,Git就没法去干净的合并它们,此时需要打开这些包含冲突的文件然后手动解决冲突

出现合并冲突问题

image.png

image.png

当我们切换回主分支时运行git merge命令时会报错,无法进行合并。因为你在主分支的文件有原来的内容,你合并的分支又修改了主分支当前文件夹的内容,导致主分支和合并的分支文件内容不一致就会产生冲突问题。

解决办法:我们打开vscodes选择这四个选项的某一种

image.png

手动解决后我们要将文件添加到暂存区运行 git add .命令,然后再运行git commit -m 命令声明并提交到未修改状态。 image.png

将本地分支推送到远程仓库

git push -u 远程仓库的别名 本地分支名称:远程分支名称

如果是第一次将本地分支推送到远程仓库,需要运行如下命令:

image.png

默认的情况下远程仓库的别名就叫origin

image.png

注意: 第一次推送分支需要带-u 参数,此后可以直接使用git push推送代码到远程分支

查看远程仓库中所有的分支列表

git remote show 远程仓库名称

image.png

跟踪分支

从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同

git checkout 远程分支的名称

image.png 从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名

git checkout -b 本地分支名称 远程仓库名称/远程分支名称

image.png image.png

拉取远程分支的最新的代码

git pull 把远程分支最新的代码下载到本地对应的分支中

删除远程分支

git push 远程仓库名称 --delete 远程分支名称

git branch -D 分支名称 强制删除本地分支

总结:

image.png

需求:经理让你为你之前的登陆模块添加一个新的功能:验证码登陆,你预计时间一天,同时你希望也能进行版本管事,所以你准备开一个分支来完成这个业务

  • 1.查看当前的分支,我不能让我新创建的分支重名:git branch
  • 2.我准备创建一个名称为login的分支: git branch login,再通过git branch验证分支是否创建成功(创建的分支代码和主分支master代码默认完全一样)
  • 3.我开始要切换到login分支搞搞事情了:git checkout login,然后验证一下是否切换成功
  • 4.我就在login分支上认真的进行代码的业务开发。。。。。。。。同时按常规的方式进行add 和 commit
  • 5.切换到master分支,发现刚刚的login上的代码没有,所以我们需要将login分支上的代码合并到master分支: git merge login
  • 6.现在login已经完成它的使命了,所以可以将login分支删除: git branch -d login
  • 7.验证一下是否删除了:git branch