(四) github分支的知识

(四) 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仓库了。

完结

  • 41
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitHub Actions是GitHub的持续集成服务,它可以帮助开发者通过自动化的构建、发布和测试来验证代码,从而尽快发现集成错误。\[2\]GitHub Actions由多个操作组成,比如抓取代码、运行测试、登录远程服务器、发布到第三方服务等等,这些操作被称为actions。一个workflow是一次持续集成的运行过程,由一个或多个jobs构成,每个job又由多个steps构成,每个step可以执行一个或多个命令(action)。\[3\] GitHub Actions允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用该脚本,这个脚本就是一个Action。开发者可以从GitHub社区共享的官方市场查找需要的Action,也可以自己编写Action并开源供其他人使用。Action可以通过指定commit、标签或分支来引用不同的版本。\[1\] 在使用GitHub Actions之前,需要了解持续集成/持续交付的概念、Git相关知识、Linux/Windows/macOS脚本相关知识以及Yaml基础语法。Yaml是一种用于配置文件的简洁易读的数据序列化格式。\[2\] GitHub Actions提供了Linux、Windows和macOS虚拟机来运行工作流程,也可以在自己的数据中心或云基础架构中托管自己的自托管运行器。通过在代码仓库中的.github/workflows目录下创建.yml文件,可以配置自动触发的工作流程。\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [GitHubActions详解](https://blog.csdn.net/unreliable_narrator/article/details/124468384)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Github Actions](https://blog.csdn.net/SeriousLose/article/details/121476152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值