(四) github分支的知识

1 分支

1.1 分支的概念
用一个通俗的理解就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!

分支在实际开发中的作用:在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发,到最后再合并分支,就可以达到很好的结果。

1.2 master 主分支

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

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

1.3 功能分支

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


上面介绍了分支的一些概念之后,下面就开始进入本地分支操作


2 分支的操作

2.1 查看分支列表

//查看分支列表
git branch


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

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

//创建新分支
git branch 新分支的名字


2.3 切换分支
使用如下的命令,可以切换到指定的分支上进行开发:

//切换分支
git checkout 分支名字


注意到前面的 * 号已经改变位置

2.4 分支的快速创建和切换
如果我们输入命令创建了一个分支之后,又要输入一个切换分支的命令,就很麻烦,所以使用如下的命令,可以创建指定名称的新分支,并立即切换到新分支上:

//分支的快速创建和切换
git checkout -b 分支名字


注意:
“git checkout -b 分支名称” 是下面两条命令的简写形式:
1)git branch 分支名称
2)git checkout 分支名

2.5 合并分支
功能分支的代码开发测试完毕之后,可以使用如下的命令,将完成后的代码合并到 master 主分支上:

//假如在C分支
//先切换到A分支
git checkout A
//此时在A分支,合并A,C分支
git merge C

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

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

举个栗子,我们再master分支上修改了test_01.txt文件,写入了一段文字,并提交

我们再切换到另一个分支也写一段文字,也提交

最后回到master分支上,去合并test分支,发现有提示冲突

且直接打开文件什么都看不到

我用vscode打开发现两端不同颜色的字体,其实就是不同分支写入的东西,需要我们认为去解决,看到上面有四个选项可以自己点击,如果点错了可以ctrl+z撤回再选。各个选项也不用过多的解释了,选完之后保存,然后跟踪提交再合并就不会有冲突了。

2.7 删除分支
当把功能分支的代码合并到 master 主分支上以后,就可以使用如下的命令,删除对应的功能分支:

//删除分支
git branch -d xxx


注意,删除分支不能在该分支上删除该分支,就好比自己在一艘船上要把船弄沉这一道理。所以要去到其他分支再去删除,如下


上面是讲解了一些本地分支的操作,下面是讲解远程分支的操作


3 远程分支操作

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

// -u 表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带 -u 参数
git push -u 远程仓库的别名 本地分支名称: 远程分支名称//案例
git push -u origin payment:pay//如果希望远程分支的名称和本地分支名称保持一直,可以对命令进行简化:
git push -u origin payment

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

3.2 查看远程仓库中所有的分支列表
通过如下的命令,可以查看远程仓库中,所有的分支列表的信息

git remote show 远程仓库名称

3.3 跟踪分支
跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中。需要运行的命令如下

// 从远程仓库中,把对应的远程分支下载到本地仓库,名字保持一致
git checkout 远程分支的名称//从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称//案例  把远程仓库origin里面的pay分支下载并重命名为payment分支
git checkout -b payment origin/pay

3.4 拉取远程分支的最新的代码
可以使用如下的命令,把远程分支最新的代码下载到本地对应的分支中

//从远程仓库,拉区当前分支的最新代码,保持当前分支的代码和远程分支的代码一致
git pull

3.5 删除远程分支
可以使用如下的命令,删除远程仓库中指定的分支

git push 远程仓库名称 --delete 远程分支名称
//案例
git push origin--delete pay

总结

1)Git 中基本命令的使用
git init
git add .
git commit –m “提交消息”
git status 和 git status -s

2)Github 创建和维护远程仓库
能够配置 Github 的 SSH 访问
能够将本地仓库上传到 Github

3)Git 分支的基本使用
git checkout -b 新分支名称
git push -u origin 新分支名称
git checkout 分支名称
git branch

首先我们回忆一些基本命令。会用上面的这一些基本命令,我们从关于版本控制到git的基础,再到GitHub和GitHub分支,如果真的把四篇文档掌握了,就基本上可以管理好我们自己的github仓库了。

完结

(四) github分支的知识相关推荐

  1. github分支操作

    github分支操作 首先(写在前面) 命令合集: 查看分支: git branch创建分支: git branch <name>切换分支: git checkout <name&g ...

  2. pwn学习总结(四)—— 堆基础知识(持续更新)

    pwn学习总结(四)-- 堆基础知识(持续更新) 前言 chunk 使用中(分配后) 空闲中(释放后) 堆块大小 空间复用 bins fastbin unsorted bin small bin 前言 ...

  3. 一楼二楼教师办公室图书馆操场计算机房,人教PEP四年级下册英语知识汇总.docx...

    人教PEP四年级下册英语知识汇总.docx 还剩 14页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 人 教 PEP 四 年 级 下 册 Unit1 ...

  4. if语句写阶跃函数C语言,C语言第四章分支语句.ppt

    C语言第四章分支语句.ppt 例: 输入三个实数,按从小到大的顺序输出. main( ) {float a,b,c,t; scanf("%f,%f,%f ",&a,& ...

  5. 第四课 脱壳必备知识要点及方法

    第四课  脱壳必备知识要点及方法 今天所要讲的是这高级篇中最为关键,最为重要的一课,希望大家能认真学习,反复推敲,举一反三学习脱壳的各种方法,当然有的时候可能需要几种方法一起使用,今后我们也会一点一点 ...

  6. 信息系统项目管理师核心考点(六十四)信息安全基础知识重要概念

    科科过为您带来软考信息系统项目管理师核心重点考点(六十四)信息安全基础知识重要概念,内含思维导图+真题 [信息系统项目管理师核心考点]信息安全基础知识重要概念 1.加密技术 ①对称加密[加密与解密的秘 ...

  7. (转)四旋翼飞行器基本知识

    因为最近在做四旋翼的项目.所以在网上查找了点资料,转了下面这篇关于四旋翼入门级的知识. 1.结构形式        旋翼对称分布在机体的前后.左右四个方向,四个旋翼处于同一高度平面,且四个旋翼的结构和 ...

  8. 显示器接口_如何选择显示器连接线?VGA、DVI、HDMI、DP四种主流接口知识

    一般来说,显示器选择哪一种连接线是显卡显示接口与显示器显示接口决定的,也就是说,如果您的显示器或者显卡上其中一个没有DP接口,那么是无法使用DP接口的,当然如果显示器和显卡同时有DP.HDMI.DVI ...

  9. dp怎么接显示器和主机_如何选择显示器连接线?VGA、DVI、HDMI、DP四种主流接口知识...

    一般来说,显示器选择哪一种连接线是显卡显示接口与显示器显示接口决定的,也就是说,如果您的显示器或者显卡上其中一个没有DP接口,那么是无法使用DP接口的,当然如果显示器和显卡同时有DP.HDMI.DVI ...

最新文章

  1. [2015-11-10]iis远程发布配置
  2. 深入理解java异常处理机制
  3. dr.oracle素颜霜好用吗,treechada素颜霜好用吗_treechada素颜霜评测
  4. poj1161Post Office【经典dp】
  5. 机器视觉系统中相机的分辨率怎么选择?
  6. 常见的云计算安全问题
  7. 数字基带信号功率谱理论研究和实验仿真【含有MATLAB仿真实验以及实验报告】
  8. 网卡类双频WiFi模块选型参考
  9. Java 学习路线一条龙版
  10. [APP资讯] 开发一个App要多少钱?有免费开发App的网站吗?
  11. 中国大学MOOC-陈越、何钦铭-数据结构-2020春期末考试【个人完整题解记录-判断选择部分】
  12. 如何通过组策略统一为公司电脑设置“兼容性视图设置”
  13. Snipaste 免费截图贴图工具(良心推荐)
  14. VC dll 注入之钩子注入
  15. 订单查询系统c语言作业,C语言设计订单管理系统答题.doc
  16. vue3全局变量定义使用
  17. 优酷 html flash播放器,优酷播放器提示没有安装flash插件的解决办法
  18. matlab中绘制一个sin函数曲线
  19. Ubuntu 18.04 Mellanox ConnectX 网络适配器驱动安装
  20. P3354 [IOI2005]Riv 河流

热门文章

  1. Java开源项目管理工具大全
  2. 雷电模拟器一键宏实现循环点击
  3. 学习笔记之在eclipse中,使用ADT开发
  4. 数据研究必备:国内40个免费数据源大放送!
  5. 不相信九江大桥事故专家鉴定的五大理由
  6. shell中初始化数组并遍历数组
  7. 学习lua第一步-lua解释器luac.exe
  8. Python画用电客户日负荷曲线图
  9. SharePoint 2019 new Update
  10. 最大扇入数怎么判断_实战分享——百家号怎么运营获得稳定收益