Github 使用教学

news2025/1/14 18:05:33

💭 写在前面:本章我们将介绍 Git 的基本使用方法,包括注册 GitHub 账号、设置 Git、创建本地存储库、复制本地存储库、导入远程存储库、追加、提交、合并等常用操作。我们还会教你如何在 GitHub 上创建项目,使用 git clone 命令克隆远程存储库,以及三板斧之 git add、git commit 和 git push 的使用方法。

💭 本章目录:

0x00 引入:git 是什么?

0x01 使用 git 的理由

0x02 注册 Github

0x03 设置 Git

0x04 储存库

0x05 创建本地存储

0x06 复制本地存储

0x07 导入远程存储库

0x08 追加(add)

0x08 commit

0x09 合并(merge)

0x0A 在 Github 创建项目

0x0B  git clone 克隆

0x0C 三板斧之第一板斧 —— git add 添加

0x0D 三板斧之第二板斧 —— git commit -m

0x0E  三板斧之第三板斧 —— git push 推入


0x00 引入:git 是什么?

Git 是一个分布式版本控制系统,它允许多个人在同一个项目中进行协作。

它允许用户在开发过程中跟踪文件的更改,并在需要时回滚到之前的版本。

这样可以在团队协作开发时避免冲突,并保证项目的完整性。

0x01 使用 git 的理由

如果不使用 Git 等代码管理程序,版本管理的情况很多,如下所示:

如果像上面这样做,稍过一段时间就很难知道到底哪个文件是最终版本。

0x02 注册 Github

🔗 链接:GitHub: Let’s build from here · GitHub,点击 Sign Up 注册会员!

0x03 设置 Git

🔗 Git: Git - Downloads,下载并安装适合自己电脑的版本。

选择你希望的编辑器:

 

 

 

 

 

 

 

 

安装完毕后,鼠标右键即可启动 Git Bash: 

输入 git --version 可查看当前 git 版本:

打开想要使用 git 的文件夹,右键单击,能看到 Git Bash Here:

 

0x04 储存库

Git 的存储库存储文件并按版本进行管理。

存储有两种:本地存储和远程存储。

  • 本地存储:在我的PC上存储文件的个人存储库。
  • 远程存储:文件由远程存储服务器(github等)管理,多人共享的存储库。

0x05 创建本地存储

在要创建本地存储库的文件夹中运行 git bash

输入 git init 进行初始化:

0x06 复制本地存储

在需要复制存储库的位置运行 git bash:

然后输入 git clone <路径>

0x07 导入远程存储库

git clone <远程存储地址>

比如:git clone "https://github.com/foxny/HelloGitHub.git"

在这之前,我们先生成远程存储库。

在 Github repository 中选择 New:

 

然后点击

设置 repository 名称后创建:

然后,连接存储库,连接本地存储和远程存储。
git remote add origin <远程存储地址>

比如 git remote add origin "https://github.com/csdn/HelloGitHub.git"

然后输入:git remote --v 确认

0x08 追加(add)

在本地存储创建的地方生成文件,可以是源代码(c, h等)、资源(txt, png等)等所有类型的文件。

确认尚未反映为 Git status 的文件(红字)。 

git add<文件名>

如果同时添加多个文件(全部),则git add *,使用 git status 确认全部反映。

0x08 commit

将更改内容确定为存储库中的“新版本”。

根据 Commit 管理版本。可以回到过去 commit 的时间点。

git commit–m “commit内容说明”

比如   git commit –m “initial commit”

反映到远程存储库(push)

将提交的内容上传到远程存储库(github)。

git push origin ‘branch’

Ex) git push origin master. 关于Branch,稍后进行说明,首次使用时会出现登录窗口。

登录完成后,push将与日志一起完成:

Branch 之间的转换是 git checkout <branchname>
Ex) git checkout testbranch
git checkout – 通过b<branchname>  创建+可切换

 如果不再使用或不需要 branch,可以删除。git branch –d <branchname>

 Ex) git branch -d testbranch

可以用新生成的branch名称push。   Ex) git push origin testbranch

0x09 合并(merge)

可以将其他分支的更改合并到当前分支中。

git merge <branchname>

但此时发生无法同时适用的变更时,

可能会发生冲突(conflict)。 

冲突(conflict):

Master branch将第5行修改为master。

Testbranch也修改了5号行。

发生冲突时显示如下。要打开发生冲突的文件,修改以避免冲突

 

 发生冲突的文件显示如下冲突内容

 留下想要的内容,整理文件

添加并提交修改后的文件即可完成合并。
确认Branch 的名字。

 

0x0A 在 Github 创建项目

 点击 Repositories 进入如下页面,然后点击 New:

创建 repository:

在创建好的项目页面中复制项目的链接,以备接下来进行下载:

 创建好仓库后,如果我想把代码提交到 git,我们可以把 HTTPS 的内容复制下来。

0x0B  git clone 克隆

复制好 url 后,如果想把远端的仓库克隆到本地,我们可以用 git clone 指令。

 创建一个放置代码的目录:

git clone [url]        # 此处的 url 是刚刚建立好的项目的链接

第一次的时候会让你输入账号和密码:

此时我们就能看到仓库的名字,赫然纸上:

这,就是我们从远端拉去下来的我们所建立的项目。

你可以进 .git 仓库里看看,看看就行,不要对里面的东西做任何的修改!

如果我们想把我们的代码提交上去,比如我们创建一个 test.c 文件:

如果你想在提交之前看看 本地仓库 远端仓库 之间的关系,你可以输入 git status 查验:

git status

 

0x0C 三板斧之第一板斧 —— git add 添加

 如果想上传到远端,我们就要使用 git add 指令来操作了。

git add [file name]

我们试着把刚才创建的 test.c 文件添加到我们本地的仓库:

(第一次使用 git 的时候,可能会让你配置一下你的用户名和邮箱)

添加到本地仓库之后,我们再介绍一个 git commit 指令,提交日志。

0x0D 三板斧之第二板斧 —— git commit -m

git commit -m     # -m选项代表的是本次的提交日志
# 提交时应该表明提交日志、描述改动的详细内容,务必培养这个好习惯。

提交日志要好好写,不要瞎写,因为这是要给人看的,你写的一切殊不知……

 日志存在的目的是为了给人看的,也是给自己看的。

写些什么呢?写一写你做了什么东西,比如:

0x0E  三板斧之第三板斧 —— git push 推入

刚才已经将 test.c 存入本地仓库了,现在我们想要把它传送到远端仓库,即远端服务器上:

git push

需要填入用户名与密码,同步成功后刷新 Github 页面就能看到代码改动啦。

🔺 总结: 建立仓库 → git clone → git add → git commit -m "日志内容" → git push

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

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

相关文章

盘“底座”,盘出新生意经

本文转自首席信息官 作者 徐蕊 导读 卖“底座”&#xff0c;这是一门新的生意&#xff0c;也是用友与友商差异化的商业竞争优势所在。 大型企业都在建“数智化底座” 有这样两类企业&#xff0c;他们截然不同&#xff0c;但在数智化的建设上殊途同归。 随着中国经济的发展&a…

SLAM论文速递:经典动态SLAM解析—(2021)DP-SLAM:面向动态环境的移动概率视觉SLAM—5.08(1)

论文信息 题目&#xff1a; DP-SLAM:A visual SLAM with moving probability towards dynamic environments DP-SLAM:面向动态环境的移动概率视觉SLAM论文地址&#xff1a; 发表期刊&#xff1a; 标签 语义分割几何约束、动态概率传播、 摘要 文中提出了一种基于稀疏特征的视觉…

DDD分层架构浅析

大家好&#xff0c;我是易安&#xff01;今天我们聊下DDD分层架构 微服务架构模型有好多种&#xff0c;例如整洁架构、CQRS和六边形架构等等。每种架构模式虽然提出的时代和背景不同&#xff0c;但其核心理念都是为了设计出“高内聚低耦合”的架构&#xff0c;轻松实现架构演进…

【P12】JMeter 准确的吞吐量定时器(Precise Throughput Timer)

&#xff08;1&#xff09;、测试计划右键 <<< 添加 <<< 定时器 <<< 准确的吞吐量定时器&#xff08;Precise Throughput Timer&#xff09; 目标吞吐量&#xff08;每个“吞吐期”的样本&#xff09;&#xff1a;15.0 吞吐量周期&#xff08;秒&a…

ArcGIS植被覆盖度计算与栅格计算

遥感&#xff0c;顾名思义就是遥远的感知。就是利用飞机、卫星等平台对地球进行观测并获取数据。这里的数据可以使光谱数据、磁场数据等。今天我们就用一个简单的例子来说明ArcGIS对遥感数据的处理&#xff0c;但是ArcGIS处理遥感并没有其他专业遥感软件如ENVI那样强大&#xf…

(转载)04.Matplotlib-文本注释数学表达式设置

1. matplotlib.pyplot.text 文本基本参数设置 2. matplotlib.pyplot.annotate 注释基本参数设置 Matplotlib 支持绘制 TeX 包含的数学符号。TeX 是一套功能强大、十分灵活的排版语言&#xff0c;它可以用来绘制文本、符号、数学表达式等。通过下表中的方法可以绘制出相应的内容…

Java基础学习(13)

Java基础学习 一、File1.1 File详情1.2 File常见的成员方法1.2.1 判断获取1.2.2 创建删除1.2.3 获取遍历 二、IO流2.1 IO流体系2.2 FileOutputStream2.2.1 FileOutputStream写数据的3种方式2.2.2 FileOutputStream换行写:2.2.3 FileOutputStream续写 2.3 FilelnputStream拷贝文…

Go语言中的流程控制语句

目录 流程控制语句 if语句 ifelse语句 switch语句 for循环 break语句 continue语句 goto语句 流程控制语句 if语句 在Go语言中&#xff0c;可以在if后面加上一段执行语句&#xff0c;执行语句也可以用作对if条件的判断。它的语法格式为&#xff1a; if a : conditio…

MySQL_3 数据库的“CRUD“

目录 一、添加数据 1.基本语法 : 2.代码演示 : 二、查找数据 1.基本语法 : 2.代码演示 : 3.查询中的计算 : 4.WHERE子句的扩展 : 5.排序查询 : 三、修改数据 1.基本语法 : 2.代码演示 : 四、删除数据 1.基本语法 : 2.代码演示 : 一、添加数据 1.基本语法 : INS…

吹爆,全网第一个手把手教你从零开始搭建Spring Cloud Alibaba的笔记

Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案&#xff0c;是阿里巴巴开源中间件与 Spring Cloud 体系的融合。 Springcloud 和 Srpingcloud Alibaba 区别&#xff1f; SpringCloud&#xff1a; 部分组件停止维护和更新&#xff0c;给开发带来不便;SpringCl…

stm32103ZET6使用编码器(磁电增量式)

这里写目录标题 磁电增量式编码器介绍TIM定时器&#xff08;编码器接口模式&#xff09;一些用到的算法均值滤波冒泡排序&#xff08;从小到大&#xff09;一阶低通滤波 编码器测数代码编码器接口HAL库函数 正点原子的电机例程(原例程用的是stm32f407&#xff0c;我这里改成用s…

ClickHouse:对不同类型Join的支持

ClickHouse 是一个流行的开源实时分析数据库&#xff0c;旨在为需要在大量数据上进行超低延迟分析查询的用例提供最佳性能。为了在分析应用程序中实现最佳性能&#xff0c;通常需要将表组合在一起进行数据非规范化处理。扁平化表通过避免联接来帮助最小化查询延迟&#xff0c;以…

从零开始学【网络安全】

前言&#xff1a;网络安全如何从零开始学习&#xff0c;少走弯路&#xff1f; 目录&#xff1a; 一&#xff0c;怎么入门&#xff1f; 1、Web 安全相关概念&#xff08;2 周&#xff09;2、熟悉渗透相关工具&#xff08;3 周&#xff09;3、渗透实战操作&#xff08;5 周&…

DevData Talks | 思码逸陆春蕊:研发效能度量落地的难点与计策

本期 DevData Talks 直播活动邀请到的重磅嘉宾是思码逸高级咨询专家陆春蕊老师。陆春蕊老师曾就职于Oracle&#xff0c;在软件质量、项目管理方面有着丰富的经验&#xff0c;在思码逸为上百家客户提供了研发效能体系、数据分析、实践落地等方面的咨询。 陆春蕊老师与我们聊了聊…

QML绘图便捷接口类Convenient API

在绘制矩形时&#xff0c;我们提供了一个便捷的接口&#xff0c;而不需要调用stroke或者fill来完成。 3.import QtQuick 2.0 4. 5.Canvas { 6. id: root 7. width: 120; height: 120 8. onPaint: { 9. var ctx getContext("2d") 10. ctx.fi…

了解进程控制

目录 1、基本概念 2、操作系统内核 2.1支撑功能 2.2资源管理功能 3、进程的创建 3.1进程的层次结构 3.2进程图 3.3引起创建进程的事件 3.4进程的创建 4、进程的终止 4.1引起进程终止的事件 4.2进程的终止过程 5、进程阻塞与唤醒 5.1引起进程阻塞和唤醒的事件 5.2进…

老测试告诉你自动化测试需要考虑什么?

写在前面 这篇文章译自著名测试专家James Bach的《Test Automation Snake Oil》一文&#xff0c;是笔者在学习和研究探索性测试时偶然发现的一篇较有意义的文章&#xff0c;很好地解答了我们对自动化测试的疑惑。 比如万能的自动化测试是否可以替代一切&#xff0c;还给我们提…

什么是多相流?在熟悉工业中常见的两相及多相流的分类及特点

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

安全工程与运营

安全工程与运营 系统安全工程系统安全工程重要性安全工程系统安全工程理论基础 成立成熟度模型、系统安全工程能力成熟度模型能力成熟度模型&#xff08;Capability Maturity Model&#xff09;能力成熟度模型基本思想系统安全工程能力成熟度模型SSE-CMM的作用SSE-CMM体系结构域…

第9章:创建和管理表

一、数据库的创建修改和删除 1.SQL的分类 DDL&#xff1a;数据定义语言 create创建、alter修改、drop删除、rename重命名、truncate清空 DML&#xff1a;数据操作语言 insert、delete、update、select DCL&#xff1a;数据控制语言 commit提交、rollback回滚、savepoint保存…