当前位置: 首页 > news >正文

Github的使用

Github

Date: March 8, 2023
Sum: Github的使用


Github

了解开源相关的概念

1. 什么是开源

Untitled

2. 什么是开源许可协议

开源并不意味着完全没有限制,为了限制使用者的使用范围和保护作者的权利,每个开源项目都应该遵守开源许可协议( Open Source License )

3. 常见的 5 种开源许可协议

① BSD(Berkeley Software Distribution)

② Apache Licence 2.0

GPL(GNU General Public License)

具有传染性的一种开源协议,不允许修改后和衍生的代码做为闭源的商业软件发布和销售

使用 GPL 的最著名的软件项目是:Linux

④ LGPL(GNU Lesser General Public License)

MIT(Massachusetts Institute of Technology, MIT)

是目前限制最少的协议,唯一的条件:在修改后的代码或 者发行包中,必须包含原作者的许可信息

使用 MIT 的软件项目有:jquery、Node.js

关于更多开源许可协议的介绍,可以参考博客 https://www.runoob.com/w3cnote/open-source-license.html

4. 为什么要拥抱开源

开源的核心思想是“我为人人,人人为我”,人们越来越喜欢开源大致是出于以下 3 个原因:

① 开源给使用者更多的控制权

② 开源让学习变得容易

③ 开源才有真正的安全

开源是软件开发领域的大趋势,拥抱开源就像站在了巨人的肩膀上,不用自己重复造轮子,让开发越来越容易。

5. 开源项目托管平台

专门用于免费存放开源项目源代码的网站,叫做开源项目托管平台。目前世界上比较出名的开源项目托管平台主要有以下 3 个:

Github(全球最牛的开源项目托管平台,没有之一)

Gitlab(对代码私有性支持较好,因此企业用户较多)

Gitee(又叫做码云,是国产的开源项目托管平台。访问速度快、纯中文界面、使用友好)

注意:以上 3 个开源项目托管平台,只能托管以 Git 管理的项目源代码,因此,它们的名字都以 Git 开头。

6. 什么是 Github

Github 是全球最大的开源项目托管平台。因为只支持 Git 作为唯一的版本控制工具,故名 GitHub。

在 Github 中,你可以:

① 关注自己喜欢的开源项目,为其点赞打 call

② 为自己喜欢的开源项目做贡献(Pull Request)

③ 和开源项目的作者讨论 Bug 和提需求 (Issues)

④ 把喜欢的项目复制一份作为自己的项目进行修改(Fork)

⑤ 创建属于自己的开源项目

⑥ etc…

So,Github ≠ Git



注册账号

1. 注册 Github 账号的流程

① 访问 Github 的官网首页 https://github.com/

② 点击“Sign up”按钮跳转到注册页面

③ 填写可用的用户名、邮箱、密码

④ 通过点击箭头的形式,将验证图片摆正

⑤ 点击“Create account”按钮注册新用户

⑥ 登录到第三步填写的邮箱中,点击激活链接,完成注册

Untitled

2. 激活 Github 账号

Untitled

3. 完成注册

Untitled



远程仓库的使用:

1. 新建空白远程仓库

Untitled

2. 新建空白远程仓库成功

Untitled

3. 远程仓库的两种访问方式

Github 上的远程仓库,有两种访问方式,分别是 HTTPS 和 SSH。它们的区别是:

① HTTPS:零配置;但是每次访问仓库时,需要重复输入 Github 的账号和密码才能访问成功

② SSH:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需重复输入 Github 的账号和密码

注意:在实际开发中,推荐使用 SSH 的方式访问远程仓库

4. 基于 HTTPS 将本地仓库上传到 Github

Untitled

注意:目前是采用令牌的方式解决, 即密码处输入令牌即可。

Plan2:

输入这段命令:

git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git

参考:https://blog.csdn.net/weixin_38257276/article/details/124435692

如果是第二次提交代码,采用git push命令即可

5. SSH key

SSH key 的作用:实现本地仓库和 Github 之间免登录的加密数据传输。

SSH key 的好处:免登录身份认证、数据加密传输。

SSH key 由两部分组成,分别是:

① id_rsa(私钥文件,存放于客户端的电脑中即可)

② id_rsa.pub(公钥文件,需要配置到 Github 中

6. 生成 SSH key

① 打开 Git Bash

② 粘贴如下的命令,并将 your_email@example.com 替换为注册 Github 账号时填写的邮箱:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

③ 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件

7. 配置 SSH key

① 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容

② 在浏览器中登录 Github,点击头像 -> Settings -> SSH and GPG Keys -> New SSH key

③ 将 id_rsa.pub 文件中的内容,粘贴到 Key 对应的文本框中

④ 在 Title 文本框中任意填写一个名称,来标识这个 Key 从何而来

8. 检测 Github 的 SSH key 是否配置成功

打开 Git Bash,输入如下的命令并回车执行:

Untitled

上述的命令执行成功后,可能会看到如下的提示消息:

Untitled

输入 yes 之后,如果能看到类似于下面的提示消息,证明 SSH key 已经配置成功了:

Untitled

9. 基于 SSH 将本地仓库上传到 Github

Untitled

git init  #仓库初始化
git add . #
git commit -m "初始化" #将文件提交到本地git remote add origin git@github.com:CaptainDDDrake/proj3.git
git branch -M main
git push -u origin main

10. 将远程仓库克隆到本地

打开 Git Bash,输入如下的命令并回车执行:

Untitled




Git 分支

本地分支操作

1. 分支的概念

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。

如果两个平行宇宙互不干扰,那对现在的你也没啥影响。

不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!

2. 分支在实际开发中的作用

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

Untitled

3. master 主分支

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

Untitled

在实际工作中,master 主分支的作用是:用来保存和记录整个项目已完成的功能代码

因此,不允许程序员直接在 master 分支上修改代码,因为这样做的风险太高,容易导致整个项目崩溃。

4. 功能分支

由于程序员不能直接在 master 分支上进行功能的开发,所以就有了功能分支的概念。

功能分支指的是专门用来开发新功能的分支,它是临时从 master 主分支上分叉出来的,当新功能开发且测试完毕后,最终需要合并到 master 主分支上,如图所示:

Untitled

5. 查看分支列表

使用如下的命令,可以查看当前 Git 仓库中所有的分支列表:

git branch

运行的结果如下所示:

Untitled

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

6. 创建新分支

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

git branch 分支名称

图示如下:

Untitled

7. 切换分支

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

git checkout login

图示如下:

Untitled

8. 分支的快速创建和切换

使用如下的命令,可以创建指定名称的新分支,并立即切换到新分支上:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sdQ6LyAj-1679051350705)(Github%2018b8a3ba25f64a91a2825f7a2256c17b/Untitled%2018.png)]

图示如下

Untitled

注意:

“git checkout -b 分支名称” 是下面

两条命令的简写形式:

① git branch 分支名称 ② git checkout 分支名称

9. 合并分支

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

Untitled

图示如下:

Untitled

合并分支时的注意点:

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

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

git branch -d 分支名称

图示如下:

Untitled

10. 遇到冲突时的分支合并

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

Untitled



远程分支操作

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

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

Untitled

注意:那个案例指将payment这个分支推送到远程的origin仓库,同时命名它为pay

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

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

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

git remote show 远程仓库名称

3. 跟踪分支

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

Untitled

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

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

Untitled

5. 删除远程分支

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

Untitled


总结:

① 能够掌握 Git 中基本命令的使用

git init

git add .

git commit –m “提交消息”

git status 和 git status -s

② 能够使用 Github 创建和维护远程仓库

能够配置 Github 的 SSH 访问

能够将本地仓库上传到 Github

③ 能够掌握 Git 分支的基本使用

git checkout -b 新分支名称

git push -u origin 新分支名称

git checkout 分支名称

git branch

相关文章:

Github的使用

Github Date: March 8, 2023 Sum: Github的使用 Github 了解开源相关的概念 1. 什么是开源 2. 什么是开源许可协议 开源并不意味着完全没有限制&#xff0c;为了限制使用者的使用范围和保护作者的权利&#xff0c;每个开源项目都应该遵守开源许可协议&#xff08; Open Sou…...

抽丝剥茧还原真相,记一次神奇的崩溃

作者&#xff1a;靳倡荣 本文详细回放了一个崩溃案例的分析过程。回顾了C多态和类内存布局、pc指针与芯片异常处理、内存屏障的相关知识。 一、不讲“武德”的崩溃 1.1 查看崩溃调用栈 客户反馈了一个崩溃问题&#xff0c;并提供了core dump文件&#xff0c;查看崩溃调用栈如下…...

学习笔记八:docker资源配额

docker容器控制cpudocker容器控制cpu指定docker容器可以使用的cpu份额两个容器A、B的cpu份额分别为1000和500&#xff0c;结果会怎么样&#xff1f;给容器实例分配512权重的cpu使用份额总结CPU core核心控制扩展&#xff1a;服务器架构CPU配额控制参数的混合使用cpuset-cpus和c…...

小米10s格机修复 nv报错案例解析 关于基带分区的一些常识

前面分享过几期关于基带 diag端口与qcn相关的几篇帖子。其中一位粉丝朋友联系我。他的机型因为误格机导致手机进不去系统&#xff0c;反复进入官方rec报错nv损坏。进不去系统。 有兴趣的朋友可以参阅我的几个帖子&#xff0c;只是个人的一些片面理解。 基带相关贴; 安卓玩机…...

【3.17】MySQL索引整理、回溯(分割、子集问题)

3.1 索引常见面试题 索引的分类 什么是索引&#xff1f; 索引是一种数据结构&#xff0c;可以帮助MySQL快速定位到表中的数据。使用索引&#xff0c;可以大大提高查询的性能。 按「数据结构」分类&#xff1a;Btree索引、Hash索引、Full-text索引。 InnoDB 存储引擎创建的聚簇…...

转解疑难杂症,详解vector迭代器失效和深浅拷贝的问题

前文http://t.csdn.cn/kVeVX——vector模拟实现本篇文章主要是针对vector中的两个比较经典的问题同时也是上一篇文章遗留下来的问题进行详细解释&#xff0c;第一个就是迭代器失效的问题&#xff0c;第二个是深浅拷贝的问题。ps&#xff1a;注意本文演示用的代码是上一篇vector…...

质量工具之头脑风暴法

云质QMS原创 转载请注明来源 作者&#xff1a;王洪石 1. 什么是头脑风暴法 头脑风暴最早是精神病理学上的用语&#xff0c;指的是精神病患者的精神错乱状态&#xff0c;后来拓展为无限制的自由联想和讨论&#xff0c;其目的在于产生新创意、激发新设想&#xff0c;或通过找到新…...

【3】核心易中期刊推荐——人工智能计算机仿真

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…...

vFlash软件简介

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…...

mysql-online-ddl是否需要rebuild

一、背景 DDL一直是DBA业务中的大项&#xff0c;看了TIDB的DDL讲解&#xff0c;恰巧我们的mysql业务大表也遇到了DDL的变更项&#xff0c;变更内容是将varchar(10)变更成varchar(20),这个变更通过官方文档很容易知道是不需要rebuild的&#xff08;这里要注意下这个varchar(255…...

力扣-超过经理收入的员工

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;181. 超过经理收入的员工二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其…...

决策树基础知识点解读

目录 ID3算法 C4.5算法 CART树 ID3算法 定义:在决策树各个结点上应用信息增益准则选择特征&#xff0c;递归的构建决策树。该决策树是多分支分类。 信息增益 意义&#xff1a;给定特征X的条件下&#xff0c;使得类别Y的信息的不确定性减少的程度。取值越大越好。 定义&am…...

【C++】入门知识之 命名空间与输入输出

前言C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; 20世纪80年代&#xff0c; 计算机界提出了OOP(object oriented …...

redis持久化的几种方式

一、简介 Redis是一种高级key-value数据库。它跟memcached类似&#xff0c;不过数据可以持久化&#xff0c;而且支持的数据类型很丰富。有字符串&#xff0c;链表&#xff0c;集 合和有序集合。支持在服务器端计算集合的并&#xff0c;交和补集(difference)等&#xff0c;还支持…...

数据持久化层--查询分离

1. 业务场景 1)查询慢。当时工单数据库里面有1000万左右的客服工单时,每次查询时需要关联其他近10个表,一次查询平均花费13秒左右。 2)打开工单慢。工单打开以后需要调用多个接口,分别将用户信息、订单信息以及其他客服创建的单据信息列出来(如退款、赔偿、充值、投诉等…...

一文读懂Js中的this指向

前言 this关键字是一个非常重要的语法点。毫不夸张地说&#xff0c;不理解它的含义&#xff0c;大部分开发任务都无法完成。 简单说&#xff0c;this就是属性或方法“当前”所在的对象。 this.property上面代码中&#xff0c;this就代表property属性当前所在的对象。 下面是…...

零费用、零学习成本,用户快速可自定义json格式

随着物联网的发展&#xff0c;越来越多的设备被连接到互联网&#xff0c;数据量不断增加。这就需要有一种高效的方法来处理传输和处理这些数据。钡铼技术R40B边缘计算路由器&#xff0c;集成4G工业路由器、智能网关、RTU、DTU等产品多合一。支持边缘计算&#xff0c;它可以将计…...

2023年全国最新高校辅导员精选真题及答案25

百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 101.属于大学教师职业特征的是&#xff08;&#xff09;。 A.教师劳动的复杂性 B.教师…...

二、数据结构-线性表

目录 &#x1f33b;&#x1f33b;一、线性表概述1.1 线性表的基本概念1.2 线性表的顺序存储1.2.1 线性表的基本运算在顺序表上的实现1.2.2 顺序表实现算法的分析1.2.3 单链表类型的定义1.2.4 线性表的基本运算在单链表上的实现1.3 其他运算在单链表上的实现1.3.1 建表1.3.2 删除…...

CGAL 点云上采样

目录一、算法原理1、主要函数2、参数解析二、代码实现三、结果展示一、算法原理 该方法对点集进行逐步上采样&#xff0c;同时根据法向量信息来检测边缘点&#xff0c;需要输入点云具有法线信息。在点云空洞填充和稀疏表面重建中具有较好的应用。 1、主要函数 头文件 #inclu…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...

深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学

一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件&#xff0c;其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时&#xff0c;价带电子受激发跃迁至导带&#xff0c;形成电子-空穴对&#xff0c;导致材料电导率显著提升。…...