GitHub入门指南(下)

news2024/9/30 11:36:32

三、新手必备的GitHub基本操作

1.配置SSH Key

(1) 第一次使用时,要配置一下账户。
在 Git Bash 客户端,输入:

git config --global user.name “这里输入你在GitHub的账户名” git
config --global user.email “这里输入你在GitHub的注册邮箱名”

(2) 检查是否已经有 SSH Key了,如果没有就生成。
同样在 Git Bash 客户端,先后输入:

cd ~/.sshls
我的账户已经生成了 SSH Key,就有了下面所示的 id_rsa 和 id_rsa.pub 。请注意,id_rsa.pub 是公钥,后面要把这个公钥上传到 GitHub 上验证。id_rsa 是你自己的私钥,要保存好。
id_rsa id_rsa.pub known_hosts

如果没有 SSH Key,就要输入以下命令行生成:
ssh-keygen -t rsa -C “这里输入你在 GitHub 的注册邮箱”
生成后再输入上面的cd ~/.ssh和ls命令,就可以看到 SSH Key 了。

(3) 复制公钥。
接着在 Git Bash 客户端,输入命令行:

cat id_rsa.pub

这样会显示公钥文件内容,我们把它复制到剪贴板。

(4) 把复制的公钥添加到 GitHub 账户安装。
登录 GitHub 账户,点击右上角个人头像的下拉菜单,如图所示:
在这里插入图片描述
依次点击 Settings > SSH and GPG Keys,在 SSH Keys 页面右上角有个New SSH Key按钮,点击该按钮后,粘贴上刚才复制的公钥内容。里面的 “title”项就是为自己的 SSH Key 命个名,可根据个人喜好随意。

(5) 最后,检查一下 SSH Key 是否安装成功。
在 Git Bash 客户端运行命令:

$ ssh -T git@github.com

出现类似下面的提示,表示安装成功:

Hi Juliecodestack! You've successfully authenticated, but GitHub does not provide shell access.

2.我的第一个 GitHub 项目:如何新建上传仓库

(1)在 GitHub 中新建仓库
如下图所示,点击个人头像旁边的"+"号,然后选择New repository,New repository是新建存储库的意思
在这里插入图片描述

把仓库文件下载到电脑。

打开新建的仓库,如下图所示,这个仓库的 Readme 文档的内容就是刚才填入的仓库名和描述说明。 我们点击Code按钮,复制 SSH 地址。
在这里插入图片描述
假设我们要下载到电脑上的目标文件夹(为了描述方便,这里简称为文件夹 A),那么我们就右键点击文件夹 A ,在右键菜单中选择“Git Bash”,在 Git Bash 客户端输入命令行:

git clone 红色部分填写你的刚复制的SSH地址然后回车

这样,仓库就会下载到文件夹 A 中。

(3)修改仓库文件,使用 Git 命令提交修改并推送至 GitHub。
下载仓库完成之后,我们会发现文件夹 A 中有了一个新的子文件夹,比如我在前一步骤下载了仓库 testexample2020,此时文件夹 A 中就出现了一个名为"testexample2020"的新文件夹,这就是下载到本地电脑的仓库。我们打开这个新文件夹(“testexample2020”),使用 VSCode 或 Atom 编辑器(编辑器的使用方法可参考我的文章:一篇文章带你快速入门Markdown),在 Readme 文件里增加一行: hello,world!。再新建一个 main.py文件,输入一行简单的代码:print(“hello”)。

修改好了之后,我们右键点击文件夹 testexample2020(注意:此时不是在母文件夹 A 上使用 Git Bash 了),打开Git Bash 客户端,依次输入命令行:
修改好了之后,我们右键点击文件夹 testexample2020(注意:此时不是在母文件夹 A 上使用 Git Bash 了),打开Git Bash 客户端,依次输入命令行:

git add .

git commit -m"v0.1"

git push

这样修改就推送到了 GitHub 上的仓库中。
(4)登录 GitHub,查看一下仓库的变化。
登录 GitHub 后我们发现,刚才做的改动都同步到了 GitHub 仓库中,如下图中标示:
在这里插入图片描述

3.和别人一起做项目:Fork 和 Pull request

前面提到过,GitHub 是个开源社区,我们可以参加到开源项目之中,那么,具体是怎么操作呢?

举个我自己的例子来说明一下这个过程吧。

(1)Fork 一个别人的仓库

我在学习 API 接口时,网上的微博 API 工具包很多是基于 Python2 写的,我在 Github 找到了一个 Python3 的版本 sinaweibopy3,如下图所示。我用了一下,觉得很好,看到作者没有写 Readme,我就想添加一个 Readme 说明文档,让别人能更快地了解这个仓库的功能和使用方法。也就是说,我想对这个仓库做一些修改。这种情况下,我就要先 Fork 一下这个仓库到我自己那儿。
在这里插入图片描述

为什么要 Fork 呢?
Fork有“叉子”的意思,也就是从原仓库复制建一个我自己的分支(分叉),这样,我做的改动只是在我自己的分支上,不会影响到原仓库,除非我提交的
Pull request 被接受后。

Fork 之后,在我的仓库里就出现了一个相同的仓库 sinaweibopy3,如下图所示。不同之处在于,仓库名下方有个备注:“Forked from olwolf/sinaweibopy3”。
在这里插入图片描述

(2)对自己 Fork 的仓库做修改

接下来,我就对 Fork 的 sinaweibopy3 仓库做修改,添加了一个 Readme 文档。具体方法请参考上一步 “2.我的第一个 GitHub 项目:如何新建上传仓库” 的示例,可以先git clone下载到本地文件夹,修改后再git push推送到 GitHub。

(3) 提交Pull request

如下图所示,点击 Pull request,在弹出的界面填写一些信息,告诉原仓库的作者你做了什么修改、为什么要修改等,方便作者了解你对仓库的改动,然后提交,Pull request 请求就会发送至原仓库的作者。
接受Pull request后,原仓库的变化
(4)等待原仓库的作者查看和决定是否接受修改

提交了 Pull request 后,我们就等待一段时间,原仓库的作者会决定是否接受修改。

这里,仓库 sinaweibopy3 的原作者 olwolf 合并了我的修改,如图所示,这样原仓库中也增加了 Readme 文件。同时,我也因此成为了仓库贡献者(Contributors)之一。

四、总结

完成以上学习,我们基本上就入门了,接下来,你可以自己在 GitHub 上探索一下,比如搜索发现一些有趣的项目,关注一些高手大牛,加入到开源项目中,等等。最重要的是,动手练习!一旦上手实践,慢慢熟悉之后,你会发现没有开始想象的那么难,一起加油吧!

最后,推荐几个好的学习教程:

  1. GitHub 帮助文档页面—英语文档
    GitHub 帮助文档页面—中文文档

  2. 廖雪峰老师的Git教程

  3. GitHub如何配置SSH Key—CSDN

觉得这篇文章不错的话,请点赞支持一下,谢谢!

关注我 @克隆窝 ,多多交流,学习编程不迷路,一起学习提高吧!

五、更多干货🚀

  1. 如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!
  2. 💗【👇🏻👇🏻👇🏻关注我| 💬获取更多源码 | 优质文章】 带您学习各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、大学生毕业HTML模板 、期末大作业模板 、等! 「在这里有好多
    前端 开发者,一起探讨 前端 Node 知识,互相学习」!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于51单片机的数字电压表(PCF8591)(Proteus仿真+程序)

编号:32 基于51单片机的数字电压表(PCF8591) 功能描述: 本设计由51单片机最小系统PCF8591模块四路模拟量输入模块一路DA输出液晶1602显示模块 1、主控制器是89C82单片机。 2、PCF8591模数转换器进行A/D转换,读取四路…

Java中常见的文件操作

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 操作文件 File类 属性 构造方法 常见方法 重要方法的操作演示 文件内容的读写 FileInputStream OutputStream 按照字符读入 按照字符写入…

『分分钟玩转VueRouter●中』少开一把王者荣耀掌握VueRouter的基本使用

文章目录一、编程式路由导航二、缓存路由组件三、两个新的声明周期钩子四、路由守卫五、路由器的两种工作模式本篇博客会介绍Vue中的VueRouter的基本使用,编程式路由导航增加了我们进行路由跳转的灵活性,缓存路由组件保障了我们使用路由时的便捷性&#…

【高阶数据结构】搜索二叉树 经典习题讲解

🌈欢迎来到数据结构专栏~~搜索二叉树 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句…

【OpenFOAM】-olaFlow-算例6- waveFloatingObject

算例路径: olaFlow\tutorials\waveFloatingObject 算例描述: 波浪作用下的浮体的刚体运动,属于流固耦合(FSI)问题 学习目标: 动网格设置和使用,网格变形控制,浮体的物理参数设置&…

23种设计模式(二)——享元模式【对象性能】

文章目录意图什么时候使用享元享元模式的实现内部状态和外部状态享元模式的优缺点与其他模式的关系亦称: 缓存、Cache、Flyweight 意图 享元模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相…

数图互通房产管理系统架构分析

数图互通高校房产管理系统V5.0 使用JAVA、Canvas、H5等技术开发的图形数据交互技术架构平台;本系统满足XX大学房屋管理系统需求,高校房产综合管理信息系统平台V5.0遵循高校房产“分级授权、分类管理、网络化、图形化、精细化、流程化”的管理理念&#x…

关于新冠的几点总结

关于新冠的几点总结一、前言:二、病程阶段1. 第一阶段 反复发热2. 第二极端 退烧虚弱3. 第三阶段 咳嗽嗜睡三、处置措施:1. 思想准备2. 药/物准备3. 退烧方式4. 保持体温5. 通则不痛,痛则不通6. 营养补充7. 恢复关键期写在最后一、前言: 所写内容,为个人…

磊科路由器后门蜜罐捕获的事件分布情况

重点物联网 漏洞利用情况本节我们选取了两个漏洞进行分析。UPnP 相关的漏洞我们将在 4.4.3 进行分析,除去 UPnP 相关漏 洞外,被利用最多的是 Eir D1000 路由器的一个漏洞 [44](CVE-2016-10372),我们将对其进行分析。 …

Apollo浅解2

目录 用户、角色、权限 三者间的关系 权限Permission 新增一个应用时 新增一个命名空间时 角色Role 新增一个应用时 新增一个命名空间时 第三方应用 用户、角色、权限 三者间的关系 apollo也采用经典的三层权限设计,用户关联角色,角色关联权限…

DOM基础

一、DOM的概念 文档对象模型(DOM,Document Object Module)是W3C组织推荐的处理可扩展标志语言的标准编程接口,它允许程序和脚本动态的访问和更新文档的内容、结构和样式。 HTML的DOM操作是将文档里所有的内容(包括标签、标签里的内容、标签属性甚至注释等)都当做一…

51单片机入门 第一篇:LED灯

文章目录前言一、LED原理图二、创建keil5工程三、代码的编写四、程序的烧录总结前言 本篇文章讲正式带大家开始学习51单片机,希望这些文章能够很好的帮助到大家学习51单片机。 一、LED原理图 一般的51单片机上都带有8个LED灯,这里8个LED灯分别接到了板…

JS逆向——工信部ICP、IP、域名信息备案管理平台

问题:(1)数据列表接口token参数验证(2)authKey参数加密生成 1、页面中请求接口,观察请求头可发现,校验参数token为加密的字符串,根据该字符串并不能直观得到所用的加密方式是什么。 …

数据库大小写不敏感后,值也不敏感了

现象:我有一个账号admin,结果莫名多了一个ADMIN、Admin、AdMin等一些列账号;细品你的密码就算密文签名,是不是在你不知情的情况下也有很多。 原因:数据库安装的时候设置的大小写不敏感导致 解决:建议第三…

Spark 的学习笔记

Spark 的学习笔记 文章目录Spark 的学习笔记1. 概述Spark 优势及特点优秀的数据模型和丰富计算抽象Spark 生态圈Spark 特点Spark 与 HadoopSpark与MRSpark Streaming与StormSpark SQL与HiveSpark 运行模式2. 快速入门使用 Spark Shell 进行交互式分析基础Dataset 上的更多操作缓…

【机器学习】LDA算法原理

问题 线性判别分析(Linear Discriminant Analysis,LDA)是机器学习中常用的降维方法之一,本文旨在介绍LDA算法的思想,其数学推导过程可能会稍作简化。 LDA的思想 ● LDA是一种线性的、有监督的降维方法,即…

销售流程标准化重要吗?

各行各业都存在销售,但并不是每个销售都可以成为优秀的销售,优秀的销售往往有一套完整的销售流程,为了保证销售新人销售工作的顺利进行,销售流程标准化很有必要。 前言 各行各业都存在销售,但并不是每个销售都可以成为…

前端面试题之计算机网络篇--WebSocket基本使用

WebSocket 普通的包的请求和响应过程 1. 对 WebSocket 的理解 WebSocket是HTML5提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。浏览器和服务器只需要完成一次握手,两者之间…

HDLBits练习汇总-13-时序逻辑设计测试--状态机(一)

简单摩尔状态机1(Fsm1) 是一个摩尔状态机,具有两种状态,一种输入,一种输出。实现此状态机。请注意,重置状态为 B。使用异步复位。 模块声明 module top_module(input clk,input areset, // Asynchrono…

基础数学复习(3)——曲线拟合

文章目录基础概念曲线拟合的流程极小化损失函数线性最小二乘超定方程组的最小二乘解(必考)例题(必考)使用法方程计算拟合方程使用最小二乘法求解总结基础概念 曲线拟合的流程 选取函数类选取参数的准则:极小化损失函…