【教程】Github环境配置新手指南(超详细)

写在前面:
如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持!
文章目录
- 一、Github初始设置
- (一)登入Github
- (二)新建仓库
- 二、本地Git配置
- (一)安装Git
- (二)进入Git Bash
- (三)配置用户
- (四)获取SSH密钥
- 三、SSH连接Github
- (一)设置Github密钥
- (二)绑定SSH连接
- 四、测试下载Github仓库
- (一)获取仓库HTTPS链接
- (二)仓库下载
- 五、测试上传Github仓库
- (一)修改仓库文件
- (二)提交仓库文件
- (三)推送仓库文件
Github是一个基于Git版本控制系统的代码托管平台,旨在帮助开发者协作、管理和追踪其软件项目的变化。
在这个平台,你可以找到各种代码资源,几乎所有程序员都在Github上建立过代码仓库,你甚至可以找到Linux创始人Linus大神或者DHH等一系列极客的仓库,所有开源项目如今也都会选择在Github平台发布。

而作为如今最流行的代码托管平台,Github的强大之处体现在以下特点:
- 版本控制: GitHub建立在Git版本控制系统之上,使开发者能够跟踪代码的变化、协作处理冲突以及恢复先前的版本。
- 代码托管: 开发者可以在GitHub上创建存储库(Repositories),将其代码存储在这些存储库中,并与团队成员或全球开发者社区分享。
- 分支管理: GitHub提供强大的分支管理功能,使开发者能够在不影响主要代码的情况下进行并行开发和实验性工作。
- 问题跟踪: 通过GitHub的问题跟踪系统,开发者可以报告问题、讨论新功能、提出建议,并在整个团队中进行透明的协作。
- 合并请求: 开发者可以通过合并请求向项目的主分支提交更改,同时进行讨论、审查代码,并最终将更改合并到主代码库中。
- 团队协作: GitHub支持多用户协作,允许开发者在同一项目中合作,并通过权限系统控制对存储库的访问权限。
- 自动化工具: GitHub集成了各种自动化工具和服务,如持续集成(Continuous Integration)和持续部署(Continuous Deployment),以简化开发流程。
- 社交网络: 开发者可以在GitHub上关注其他用户、项目或组织,以保持对感兴趣的项目的最新动态。
然而对于使用的初始阶段,Github也需要进行一些环境的初始化搭建,以下将逐步展示初始化的具体操作。
一、Github初始设置
(一)登入Github
进入Github官方网站(https://github.com/),注册或者登录自己的Github账号。具体登录和注册步骤非常简单,这里不作演示。

(二)新建仓库
登录后即可进入Dashboard(看板)页面。由于代码需要用仓库储存,所以首先需要做的就是新建一个仓库。点击新建即可进入新建仓库页面。

根据指引,新建一个仓库。我这里新建的库名叫做test,描述则为测试github。

创建完成自己的库后,下面就需要克隆在Github创建完成的库到本地,以便于自己电脑上的代码可以同步到GitHub所创建的库当中。
二、本地Git配置
(一)安装Git
进入Git官网(https://git-scm.com/)下载Git安装包。

具体安装不再演示,可以设置一下安装的路径,其他设置均保持默认即可。
(二)进入Git Bash
无论通过任务栏搜索还是创建快捷方式在桌面,进入Git Bash后将看到如下页面。在绿色的文字中,@前是是你的电脑用户名,@后面则是你的计算机型号,紫色文字则是你的系统型号。

(三)配置用户
本地连接Github需要先配置用户,使用的bash命令如下。
git config --global user.name "github上注册的用户名" # 配置用户名
git config --global user.email "github上注册的邮箱" # 配置用户邮箱
git config --global user.name # 查看配置的用户名
git config --global user.email # 查看配置的用户邮箱

(四)获取SSH密钥
想要本地同Github连接,必须先获取SSH密钥,获取密钥的Bash命令如下。
ssh-keygen -t rsa -C "GitHub上注册时的邮箱 "
此命令执行进程中需要用户的确认。

按照文件路径,即可找到SSH密钥的保存文件。值得注意的是,SSH密钥分为公钥和私钥,只有公钥才是我们需要的。

打开公钥文件(使用记事本就可以打开)可以看到公钥是一串以ssh-rsa为开头,你注册的邮箱为结尾的代码。将这串公钥复制,下一步将使用这串公钥。

三、SSH连接Github
(一)设置Github密钥
进入Github,点击左边的头像进入设置页面。

选择SSH与GPG密钥配置页面,建立新SSH密钥。

这里的标题是命名这个SSH密钥方便管理,我命名此密钥为笔记本(laptop),密钥则是刚才复制的SSH公钥。

点击添加SSH密钥(Add SSH key)即可成功添加密钥。

(二)绑定SSH连接
由于Github获得了本地电脑SSH连接的密钥,所以理论上将只要使用就可以连接。返回Git Bash界面,使用以下Bash命令即可绑定与Github的连接。
ssh -T git@github.com
过程中会需要用户确定绑定,输入yes即可确定。返回以下结果即代表已成功绑定。

对于已经绑定好的Github,接下来还需要进行克隆(下载)到本地和上传到Github两方面的测试来确定一下功能是否可以正常使用。
四、测试下载Github仓库
(一)获取仓库HTTPS链接
进入刚才建立的仓库,在代码选项中即可看到HTTPS链接,复制下来。

(二)仓库下载
对于下载的仓库,会需要一个文件路径来承载,本人习惯下载到E盘专门建立的github文件夹,方便管理。选择下载路径通过Bash命令进入那个你想要下载的文件路径下才可以。进入那个目录下就可以下载(克隆)Github仓库了。
另外,转移到某个目录下不确定有什么目录和文件也可以用ls命令来看一下。
cd /E/github # 转移到E盘的github目录下
git clone https://github.com/EliasZWC/test.git # 通过HTTPS链接克隆仓库到此文件夹下
出现以下返回结果则显示成功克隆仓库。

此时打开下载仓库的路径,就可以看到下载好的仓库,仓库中的readme文件也都下载了下来。


五、测试上传Github仓库
(一)修改仓库文件
当本地仓库中的项目结构发生了改变,发生的改变想要上传同步都必须存入Git暂存区。

例如这里我建立了一个test.txt文件,希望上传时则必须存入Git暂存区,Bash命令如下。
cd ./test # 进入到test这个仓库文件目录下
git add test.txt
值得注意的是,我仅改变了一个文件,所以直接使用文件名添加指定文件到Git暂存区即可;但如果修改了多项文件,可以将文件名这里改为.即可将所有修改过的文件添加到暂存区。
(二)提交仓库文件
当文件存入暂存区后,还需要将修改项目从暂存区提交更改到本地仓库,这里需要使用git commit命令。
git commit -m "for test" # 提交信息为for test
使用-m参数可以添加字符串作为提交信息,即注释。出现以下返回结果说明提交成功。

(三)推送仓库文件
当仓库的更改项都已经提交到本地仓库中,此时就可以将更改后的仓库推送到远程Github仓库中了,Bash命令如下。
git push origin main
这里使用了Git系统的push命令,origin是远程仓库的默认别名,main则是进入test仓库文件夹时可以看到的本地分支名称。回车使用后会出现以下Github登录页面。

两个登录方式都可以,我这里用了浏览器登录(其实另一个验证码登录也需要进入浏览器)。选择账户继续(continue)授权。

令Github账户授权给Git库。

出现此页面即授权成功。

回到Git Bash页面,查看各种上传数据,果然成功。

进入Github中的test仓库也可以看到test.txt成功上传,进入个人主页也可以看到贡献值绿了,这说明上传成功。

日后同样使用Git的add、commit和push这三个命令按同样原理上传文件(仓库)即可。
我是EC,一个永远在学习中的探索者,关注我,让我们一起进步!

相关文章:
【教程】Github环境配置新手指南(超详细)
写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 文章目录 一、Github初始设置(一)登入Github(二)新建仓库 二、本地Git配置&am…...
突然发现一个很炸裂的平台!
平时小孟会开发很多的项目,很多项目不仅开发的功能比较齐全,而且效果比较炸裂。 今天给大家介绍一个我常用的平台,因含低代码平台,开发相当的快。 1,什么是低代码 低代码包括两种,一种低代码,…...
安卓开发面试题
安卓开发面试题 解释一下 Android 中的四大组件。 答:Android 中的四大组件是 Activity、Service、BroadcastReceiver 和 ContentProvider。其中,Activity 负责界面展示和与用户交互;Service 负责后台服务处理;BroadcastReceiver …...
es6面试题
ES6面试题 var、let、const区别 共同点:都是可以声明变量 区别: 1、var具有变量提升机制,let和const没有 2、var 声明的变量是函数作用域或全局作用域,而 const 和 let 声明的变量是块级作用域。 3、var可以多次声明同一个变量&a…...
Kafka MQ 生产者和消费者
Kafka MQ 生产者和消费者 Kafka 的客户端就是 Kafka 系统的用户,它们被分为两种基本类型:生产者和消费者。除 此之外,还有其他高级客户端 API——用于数据集成的 Kafka Connect API 和用于流式处理 的 Kafka Streams。这些高级客户端 API 使用生产者和消…...
tomcat优化与部署(三)------nignx优化与nginx +tomcat 部署
在目前流行的互联网架构中,Tomcat在目前的网络编程中是举足轻重的,由于Tomcat的运行依赖于JVM,从虚拟机的角度把Tomcat的调整分为外部环境调优 JVM 和 Tomcat 自身调优两部分 Tomcat 是一个流行的开源 Java 服务器,用于托管 Java …...
一个用libcurl多线程下载断言错误问题的排查
某数据下载程序,相同版本的代码,在64位系统中运行正常,但在32位系统中概率性出现断言错误。一旦出现,程序无法正常继续,即使重启亦不行。从年前会上领导提出要追到根,跟到底,到年后的今天&#…...
Docker的安装及MySQL的部署(CentOS版)
目录 1 前言 2 Docker安装步骤 2.1 卸载可能存在的旧版Docker 2.2 配置Docker的yum库 2.2.1 安装yum工具 2.2.2 配置Docker的yum源 2.3 安装Docker 2.4 启动和校验 2.5 配置镜像加速(使用阿里云) 2.5.1 进入控制台 2.5.2 进入容器镜像服务 2.5.3 获取指令并粘贴到…...
css 背景图片居中显示
background 简写 background: #ffffff url(https://profile-avatar.csdnimg.cn/b9abdd57de464582860bf8ade52373b6_misnice.jpg) center center / 100% no-repeat;效果如图:...
Python编程-如何轻松开启一个Web服务?
目录 前言 Flask:轻量级 Django:高级 Bottle:轻量级 Pyramid:灵活且可扩展 Tornado:可扩展、非阻塞 CherryPy:微型 轻量级的Web框架的选择 前言 在Python中开启一个Web服务有多种方法,选…...
鸡肋的Git
1.前言 对于大多数开发人员来说,我们大多数在学习或者工作过程中只关注核心部分,比如说学习Java,可能对于大多数人而言一开始都是从Java基础学起,然后408,Spring,中间件等,当你发现很多高深的技…...
iOS 中的 UITextField 如何设置才能只输入数字和小数点?
刚接触 iOS不久,接到一个iOS项目,其中有一个需求就是在一个 UITextField中只能输入数字和小数点,这个需求在Android中非常容易,只需要设置 <EditTextandroid:id"id/id_et_price"android:layout_width"match_par…...
阿珊详解Vue Router的守卫机制
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
python淘宝网页爬虫数据保存到 csv和mysql(selenium)
数据库连接设置(表和字段要提前在数据库中建好) # 数据库中要插入的表 MYSQL_TABLE goods# MySQL 数据库连接配置,根据自己的本地数据库修改 db_config {host: localhost,port: 3306,user: root,password: ma*****6,database: may2024,charset: utf8mb…...
云计算中仲裁节点和仲裁可用区介绍
在云计算中,仲裁是指当多个节点或实例之间发生争议或冲突时,由一个独立的第三方机构或节点来解决争议或冲突的过程。仲裁通常用于解决云计算中的资源分配、数据一致性、服务质量等问题。 仲裁的作用主要有以下几点: 1. 保证资源分配的公平性…...
Python的requests库发送HTTPS请求时,SSL证书验证的流程
建立连接:当你使用requests库发送HTTPS请求时,它会尝试与目标服务器建立安全的SSL连接。 获取服务器SSL证书:服务器会将自己的SSL证书发送给客户端(即你的请求)。 验证证书:requests库会验证服务器返回的…...
基于 HBase Phoenix 构建实时数仓(3)—— Phoenix 安装
目录 一、主机规划 二、Phoenix 安装 1. 解压、配置环境 2. 将 phoenix-server-hbase-2.5-5.1.3.jar 文件复制到 HBase 的 lib 目录中 3. 重启 HBase 集群 4. 安装验证 (1)连接 HBase (2)视图映射 (3…...
Python IDE
Python IDE 本文为大家推荐几款款不错的 Python IDE(集成开发环境),比较推荐 PyCharm,当然你可以根据自己的喜好来选择适合自己的 Python IDE。 PyCharm PyCharm 是由 JetBrains 打造的一款 Python IDE。 PyCharm 具备一般 Pyt…...
Vue3和Vue2的区别
Vue 3 是 Vue.js 的下一个主要版本,它引入了许多新特性和优化,与 Vue 2 相比有一些显著的区别。以下是一些主要的区别: 性能提升: Vue 3 提供了更快的虚拟 DOM,减少了渲染和更新时间。使用 Proxy 重写了响应式系统,使…...
【内推】新风口-大模型独角兽公司minimax
先上内推链接: MiniMax社招内推码: AK3XEJ6 投递链接: https://vrfi1sk8a0.jobs.feishu.cn/s/iFY5WFgE 岗位:前端、后端、算法,基础架构都有,大量hc 公司介绍: 国内同时拥有文本、语音、视觉三种基础大模型能力的创业…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
