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

Github入门教程,适合新手学习(非常详细)

前言:本篇博客为手把手教学的 Github 代码管理教程,属于新手入门级别的难度。教程简单易操作,能够基本满足读者朋友日常项目寄托于 Github 平台上进行代码管理的需求。Git 与 Github 是一名合格程序员 coder 必定会接触到的工具与平台,GitHub 作为世界上最大的代码开源与分享平台,读者朋友可以在 Github 得到或上传各种各样的代码资源。希望这篇博文能给读者朋友的 Git 与 Github 使用带来些许帮助,Respect!

Github官网地址:GitHub: Let’s build from here · GitHub

Github教程推荐:Github 简明教程 | 菜鸟教程 (runoob.com)

一、Github概述

1.1 Git的诞生

GitHub 是一个基于web的服务平台,主要用于版本控制和协作,让开发者和项目团队能够更好地一起工作。它提供了一个 Git 代码仓库的托管服务,Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 为更好地管理 Linux 内核开发而设计。

在 GitHub 上,用户可以创建自己的项目仓库来管理代码,同时也可以参与到其他人的项目中。 GitHub 提供了许多协作特性,比如问题跟踪、项目管理、代码审查、团队讨论等,这些都极大地促进了开源项目的合作和发展。 

★Git 诞生八卦:

Linus 在 1991 年创建了开源的 Linux,从此,Linux 系统不断发展,已经成为最大的服务器系统软件了。

Linus 虽然创建了 Linux,但 Linux 的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为 Linux 编写代码,那 Linux 的代码是如何管理的呢?

在 2002 年以前,世界各地的志愿者把源代码文件通过 diff 的方式发给 Linus,然后由 Linus 本人通过手工方式合并代码!

直到 2002 年,Linux 系统已经发展了十年了,代码库之大让 Linus 很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统 BitKeeper,BitKeeper 的东家 BitMover 公司出于人道主义精神,授权 Linux 社区免费使用这个版本控制系统。

但在 2005 年这样的美好被打破了,于是 Linus 花了两周时间自己用 C 写了一个分布式版本控制系统,这就是 Git!一个月之内,Linux 系统的源码已经由 Git 管理了!

Git 迅速成为最流行的分布式版本控制系统,尤其是 2008 年,GitHub 网站上线了,它为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub,包括 jQuery,PHP,Ruby 等等。

1.2 Git与Github的联系

Git 和 GitHub 是两个紧密相关的事物:

1、Git: Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 创建于 2005 年。它允许开发者跟踪和管理源代码历史,支持多人协作开发。Git 的核心功能包括版本控制、分支管理、合并和冲突解决等。它是基于命令行的工具,可以在本地计算机上完全离线工作。

2、GitHub: GitHub 是一个基于 Git 的在线托管平台,提供 Git 仓库的托管服务。它为开源项目和个人开发者提供了一系列协作工具,如代码审查、问题跟踪、项目管理、Wiki 页面等。GitHub 还提供了图形用户界面,使得用户可以更容易地使用Git的功能。此外,GitHub 还提供了一些社交网络特性,如关注其他用户、星标项目(star)、对项目代码提出改进建议(fork)和提交拉取请求(pull request)。

综上所述,Git 是一个版本控制系统,而 GitHub 是一个使用 Git 的工具和服务提供者。开发者可以在本地使用 Git 进行版本控制,然后将代码推送到 GitHub 上进行共享和协作。

二、Github的使用

2.1 Github注册

1、登入 GitHub 的官网,点击 sign up(注册);

2、填入相关的注册 GitHub 账号信息;

3、登入自己刚刚注册的 Github 账号;

2.2 Github项目库创建

1、登入自己的 Github,点击创建 Create repository;

2、对创建的项目工程内容进行选择性的填写;

3、读者朋友需要注意库分为两种,分别是:公有(Public)和私有(Private),大家自行选择即可。填好信息后点击创建仓库即可。

在创建完成自己的库之后,下面就要让自己的电脑克隆一个自己所创建的库,方面自己电脑上的代码同步到 GitHub 你所创建的库当中。为了实现,就需要安装一个软件 Git Bash。接下来让我们安装 Git Bash。 

2.3 Gitbash安装详解

Git Bash 是 Git for Windows 的一个组件,它提供了一个基于 MinGW 的命令行仿真环境,允许用户在 Windows 操作系统上使用 Git 命令行工具,就像在 Unix 或 Linux 系统上一样。Git for Windows 是 Git 的官方版本,它包括了 Git 命令行工具、Git GUI(图形用户界面)以及 Git Bash。

Git Bash 提供了一些类似于 Unix shell 的特性,包括常用的 Unix 命令(如 ls、cat、grep 等),以及通过 SSH 进行远程操作的能力。它还支持对 Windows 文件系统的访问,允许用户在 Git Bash 中执行 Windows 应用程序和访问 Windows 文件路径。

安装 Git for Windows 后,用户可以在 Windows 的开始菜单中找到 Git Bash,或者在文件资源管理器中任意文件夹的上下文菜单中找到“Git Bash Here”选项,从而启动 Git Bash。在 Git Bash 中,用户可以执行 Git 相关的操作,如克隆仓库、提交更改、推送分支等。

Git官网下载地址:Git (git-scm.com)

在 Git 的官网中点击Downloads,进入如下页面:Git - Downloads (git-scm.com)

有 Mac,Windows,Linux 版本的,下载适合自己电脑的版本(博主是 Windows 按照自己电脑配置来选的):

选择自己的操作系统下载即可: 

等待下载完成: 

如下图所示,这表示 Git 已经安装完成了,至于图中的两个选择,则分别表示 打开 Git Bash 和 浏览 Git 版本信息,可以都选,也可以都不选。

Git常用命令:

2.4 Git和Github的绑定

2.4.1 得到ssh keys

输入 cd ~/.ssh,返回 "no such file or directory" 表明电脑没有ssh key,需要创建ssh key;

故在终端输入 ssh-keygen -t rsa -C “git账号”

连续进行 3 次回车Enter(确认),得到如下截图中的信息即可; 

按路径进入 .ssh,里面存储的是两个 ssh key 的秘钥,id_rsa.pub 文件里面存储的是公钥,id_rsa 文件里存储的是私钥,不能告诉别人。打开 id_rsa.pub 文件,复制里面的内容。

2.4.2 绑定ssh密钥

1、接下需要登录到自己的 GitHub 上边添加这个密匙;

2、填写名字并且填写复制的公钥(id_rsa.pub内容),添加后配置完成。;

 3、点击 Add SSH key,我们就成功添加 SSH Key 啦!

4、我们回到 Git bash上边,输入:ssh -T git@github.com
来检查是否成功绑定。如果输入代码之后再选择 yes 出来是这样说明就成功啦!!! 

5、剩余简单的配置内容。

将 name 最好和 GitHub 上边的一样,email 是一定要是注册 GitHub 的那个邮箱地址

这两个的顺序可以颠倒,没有固定的顺序。

git config --global user.name “gitname”
git config --global user.email “git邮箱”

截止到这里的操作,已经完成本地 Git 与远程的 Github 绑定,这意味着我们已经可以通过 Git 向 GitHub 提交代码啦!

2.5 使用Git将代码提交到GitHub

该过程需要使用经常的接触的两个 Git 命令,包括:push pull

push该单词直译过来就是 “推” 的意思,如果我们本地的代码有了更新,为了保持本地与远程的代码同步,我们就需要把本地的代码推到远程的仓库,代码示例:

git push origin master

pull该单词直译过来就是 “拉” 的意思,如果我们远程仓库的代码有了更新,同样为了保持本地与远程的代码同步,我们就需要把远程的代码拉到本地,代码示例: 

git pull origin master

2.5.1 克隆仓库

1、将我们的库克隆下来到本地电脑中,方便以后进行上传代码。

2、点进仓库之后点击 Code,点击 ssh 会看到一串网址(http也可以),这个地址就是代码地址,git clone 命令会用的到。

3、接下来我们就开始选择文件存储地方了,在本地电脑中找到存储文件的地方,然后右键选择 Git Bash Here: 

4、在终端输入 git clone 地址(这个地址就是刚刚库那个Code的上代码地址)

该过程有时候可能会需要输入 Github 账号密码啥的,记得不要输错啦! 

 如下图所示,指定目录已经存在了我们的库文件 

2.5.2 上传代码

1、打开这个文件夹,然后在其中创建一个任意格式,任意名称的文件(这里新建了一个测试文件)。

2、在这个文件夹里面右键 git bash 进黑框框,git add 我们新增的文件

3、之后输入然后 git commit -m “测试是否成功” 引号内的内容可以随意改动,这个语句的意思是 给你刚刚上传的文件一个备注,方便查找记忆而已;

4、接着输入 push 指令 git push origin main,如下图所示就代表成功了;

5、打开 GitHub,看到刚刚上传的文件,显示成功。

到这里,本篇博客针对 Github 平台的使用教程就已经结束了!!! 

三、作者有话

Github 是目前全世界最大的开源代码分享平台,不管是工程项目代码还是科研文章中的代码,很多都是托管于 GitHub 上的。不仅于此,很多公司现在编写与管理工程代码时候,也经常使用 Git 进行操作!所以,不管怎么样还是非常建议读者朋友去花点时间与经历去学习 Git 的使用的!非常希望这篇简短的博客能够帮助到各位,Respect!

结语:希望各位读者朋友与大佬也能在 Github 上继续分享优秀的开源项目,助力 Github 上国人的贡献量,Respect!!!

相关文章:

Github入门教程,适合新手学习(非常详细)

前言:本篇博客为手把手教学的 Github 代码管理教程,属于新手入门级别的难度。教程简单易操作,能够基本满足读者朋友日常项目寄托于 Github 平台上进行代码管理的需求。Git 与 Github 是一名合格程序员 coder 必定会接触到的工具与平台&#x…...

C# OpenCvSharp 代数运算-add、scaleAdd、addWeighted、subtract、absdiff、multiply、divide

在C#中使用OpenCvSharp进行图像处理时,理解和合理使用各种图像操作函数可以帮助我们实现许多实际应用中的需求。下面,我将详细介绍每个函数的使用,并给出与实际应用项目相关的示例,包括运算过程和运算结果。 1. add 函数 作用 将两幅图像进行相加,可以达到图像融合的目的…...

为什么说Python 是胶水语言?

​ "Python 是胶水语言"这一说法是指它很擅长将不同的程序或代码库连接在一起,能够让来自不同编程语言或框架的组件无缝协作。Python 具有丰富的库和简单的语法,使得它可以轻松调用其他语言编写的程序或使用不同技术栈的模块。 ​ 以下是几个…...

GitLab教程(二):快速上手Git

文章目录 1.将远端代码克隆到本地2.修改本地代码并提交到远程仓库3.Git命令总结git clonegit statusgit addgit commitgit pushgit log 首先,我在Gitlab上创建了一个远程仓库,用于演示使用Gitlab进行版本管理的完整流程: 1.将远端代码克隆到本…...

结构体知识点

基本概念 结构体是一种自定义变量类型,类似于枚举需要自己定义。 它是数据和函数的集合。 在结构体中,可以声明各种变量和方法。 基本语法 1.结构体一般写在namespace语句块中。 2.结构体关键字struct struct 自定义结构体名 {//第一部分//变量//…...

C# —— 显示转换

显示转换: 通过一些方法可以将其他数据类型转换为我们想要的数据类型 1.括号强转 作用: 一般情况下 将高精度的类型转换为低精度 // 语法: 变量类型 变量名 (转换的变量类型名称) 变量; // 注意: 精度问题 范围问题 sbyte sb 1; short s 1; int …...

zip加密txt文件后,暴力破解时会有多个解密密码可以打开的疑问??

最近在做一个关于zip压缩文件解密的测试,发现通过暴力解密时,会有多个解密密码可以打开,非常疑惑,这里做个问题,希望能有大佬解惑。 1、首先在本地创建一个113449.txt的文件,然后右键txt文件选择压缩&…...

css入门宝典

3.1.4 通配符选择器 语法 : *{} 作用 : 让页面中所有的标签执行该样式,通常用来清除间距 例子 : *{ margin: 0; //外间距 padding: 0; //内间距 } 一 CSS基本语法 1基础知识 1.1概述 Css (层叠样式表)是种格式化网页的标准方式, 用于控制设置网页的样式&#xff…...

【AI原理解析】— 星火大模型

目录 1. 模型基础架构 神经网络结构 编码器 解码器 多层神经网络结构 其他自然语言处理技术 2. 训练数据 来源 规模 3. 自监督学习 Masked Language Model (MLM) 4. 参数量与计算能力 大规模参数量 深度学习算法 5. 技术特点 多模态输入 自我学习与迭代 6. 应…...

StarNet实战:使用StarNet实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 https://arxiv.org/pdf/2403.19967 论文主要集中在介绍和分析一种新兴的学习范式——星操作(Star Operation),这是一种通过元素级乘法融合不同子…...

单链表——AcWing.826单链表

单链表 定义 单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。 运用情况 用于实现动态的数据存储和管理,例如实现栈、队列等其他数据结构。在需要频繁进行插入和删除操作时非常有用…...

10:Hello, World!的大小

OpenJudge - 10:Hello, World!的大小 描述 还记得在上一章里,我们曾经输出过的“Hello, World!”吗? 它虽然不是本章所涉及的基本数据类型的数据,但我们同样可以用sizeof函数获得它所占用的空间大小。 请编程求出它的大小,看看跟你…...

【Pandas驯化-03】Pandas中常用统计函数mean、count、std、info使用

【Pandas驯化-03】Pandas中常用统计函数mean、count、std、info使用 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 相关内容文档获取 微…...

WordPress——Argon主题美化

文章目录 Argon主题美化插件类类别标签页面更新管理器文章头图URL查询监视器WordPress提供Markdown语法评论区头像设置发信设置隐藏登陆备份设置缓存插件 主题文件编辑器页脚显示在线人数备案信息(包含备案信息网站运行时间)banner下方小箭头滚动效果站点功能概览下方Links功能…...

Vue部分文件说明

1.eslintignore文件 Eslint会忽略的文件 # Eslint 会忽略的文件.DS_Store node_modules dist dist-ssr *.local .npmrc 2.gitignore # Git 会忽略的文件.DS_Store node_modules dist dist-ssr .eslintcache# Local env files *.local# Logs logs *.log npm-debug.log* yarn-de…...

图书管理系统(SpringBoot+SpringMVC+MyBatis)

目录 1.数据库表设计 2.引入MyBatis和MySQL驱动依赖 3.配置数据库&日志 4.Model创建 5.用户登录功能实现 6.实现添加图书功能 7.实现翻页功能 1.数据库表设计 数据库表是应⽤程序开发中的⼀个重要环节, 数据库表的设计往往会决定我们的应⽤需求是否能顺利实现, 甚至决…...

11.泛型、trait和生命周期(上)

标题 一、泛型数据的引入二、改写为泛型函数三、结构体/枚举中的泛型定义四、方法定义中的泛型 一、泛型数据的引入 下面是两个函数,分别用来取得整型和符号型vector中的最大值 use std::fs::File;fn get_max_float_value_from_vector(src: &[f64]) -> f64…...

UML与设计模式

1、关联关系 关联关系用于描述不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联关系是一种静态关系,通常与运行状态无关,而是由“常识”、“规则”、“法律”等因素决定的,因此关联关系是一种强关联的关…...

如何在Spring Boot中实现图片上传至本地和阿里云OSS

在开发Web应用时,处理文件上传是常见的需求之一,尤其是在涉及到图片、视频等多媒体数据时。本文将详细介绍如何使用Spring Boot实现图片上传至本地服务器以及阿里云OSS存储服务,并提供完整的代码示例。 一、上传图片至本地 首先&#xff0c…...

几个小创新模型,KAN组合网络(LSTM、GRU、Transformer)时间序列预测,python预测全家桶...

截止到本期,一共发了8篇关于机器学习预测全家桶Python代码的文章。参考往期文章如下: 1.终于来了!python机器学习预测全家桶 2.机器学习预测全家桶-Python,一次性搞定多/单特征输入,多/单步预测!最强模板&a…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

【机器视觉】单目测距——运动结构恢复

ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛&#xf…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...

python基础语法Ⅰ

python基础语法Ⅰ 常量和表达式变量是什么变量的语法1.定义变量使用变量 变量的类型1.整数2.浮点数(小数)3.字符串4.布尔5.其他 动态类型特征注释注释是什么注释的语法1.行注释2.文档字符串 注释的规范 常量和表达式 我们可以把python当作一个计算器,来进行一些算术…...