Git入门指南(手把手教学)

news2025/1/11 17:15:20

Git入门指南

    • 一、什么是Git
    • 二、Git的安装下载
    • 三、git的简单实践
      • 1.创建git仓库
      • 2.Windows上生成公钥以绑定GitHub仓库
      • 3.写一个Helloworld
    • 四、帮助学习的网站

一、什么是Git

Git是一种分布式版本控制系统,它是由Linus Torvalds为了管理Linux内核开发而开发的。与中心化的版本控制系统(如SVN)不同,Git是一种分布式系统,它将代码库(repository)复制到多个开发者的本地计算机上,每个开发者都有自己的代码库,可以在本地提交代码、管理分支、合并代码等操作。Git通过在本地存储完整的代码历史记录,使得开发者可以离线工作,并支持多个开发者并行开发。

Git与SVN的主要区别如下:

  1. 分布式与中心化:Git是一种分布式版本控制系统,而SVN是一种中心化版本控制系统。在Git中,每个开发者都有自己的代码库,并可以在本地提交代码、管理分支、合并代码等操作。而在SVN中,代码库存储在中央服务器上,开发者需要从服务器上获取代码,并将更改提交到服务器。

  2. 分支管理:Git的分支管理功能非常强大,它支持快速创建、切换、合并分支,还支持本地分支和远程分支。而在SVN中,分支管理功能相对较弱,只支持创建分支,而分支合并操作需要通过服务器来完成。

  3. 性能和扩展性:Git在处理大型代码库时具有优异的性能和扩展性,因为每个开发者都有自己的代码库,并且可以离线工作。而SVN在处理大型代码库时可能会遇到性能和扩展性方面的挑战,因为所有开发者都需要连接到中央服务器。

二、Git的安装下载

可以从Git官方网站下载并安装Git工具,以下是具体步骤:

  1. 打开Git官方网站:Git - Downloads

  2. 选择您所使用的操作系统,例如Windows,macOS,Linux等,并点击相应的下载按钮。

  3. 如果您使用的是Windows系统,下载完成后,双击.exe文件,打开安装向导,按照提示进行安装。如果您使用的是macOS或Linux系统,您可以通过命令行安装Git,具体安装方法请参考官方文档。

  4. 安装完成后,您可以在命令行终端中输入git --version命令,以确认Git是否已成功安装并显示版本信息。

安装完成后,您就可以在命令行终端中使用Git命令来管理您的代码库。同时,您也可以使用Git GUI客户端,如GitHub Desktop,SourceTree等,来进行更加直观的Git操作。

三、git的简单实践

1.创建git仓库

首先可以注册一个github账号,创建一个仓库。

然后可以看到创建的仓库:

这里说明一下最后一个License许可证的作用

在创建Git仓库时选择证书可以指定代码仓库的许可证类型。这个许可证类型决定了在何种情况下其他人可以使用、修改或分发代码。

常见的许可证类型包括MIT、Apache、GPL等,每种许可证都有其独特的限制和条款,开发者应该根据自己的需求选择适合的许可证类型。

例如,MIT许可证允许使用、修改和分发源代码和二进制文件,只要在所有副本中包含原始版权和许可声明。Apache许可证要求所有修改的代码都必须以Apache许可证的形式发布。GPL许可证则要求所有修改的代码都必须以GPL许可证的形式发布,并且在某些情况下可能要求以开源形式发布整个应用程序。

选择合适的证书有助于保护你的知识产权并促进代码的分享和协作。

不同的开源软件许可证类型有不同的限制和条款,下面是一些常见的证书的主要限制和条款的概述:

  • MIT许可证:MIT许可证是一种简单的、宽松的许可证,允许使用、修改和分发源代码和二进制文件,只要在所有副本中包含原始版权和许可声明。MIT许可证没有任何附加条件或限制。

  • Apache许可证:Apache许可证是一种广泛使用的许可证,允许使用、修改和分发源代码和二进制文件,只要所有修改的代码都必须以Apache许可证的形式发布。此外,如果你使用Apache许可证的代码,你必须提供原始版权和许可声明,并在使用任何Apache许可证代码的产品或文件中包含一个 NOTICE 文件。

  • GPL许可证:GPL许可证是一种最为严格的开源许可证,要求任何使用、修改或分发GPL许可证的软件必须以相同的许可证类型发布,并且源代码必须始终可用。此外,如果你在你的代码中使用GPL许可证的代码,则你的代码也必须是GPL许可证的。

  • BSD许可证:BSD许可证是一种较为宽松的许可证,允许使用、修改和分发源代码和二进制文件,只要在所有副本中包含原始版权和许可声明。BSD许可证没有任何附加条件或限制,允许代码的商业使用和闭源修改。

  • Mozilla Public License(MPL):MPL是一种与GPL和LGPL兼容的开源许可证,允许使用、修改和分发源代码和二进制文件,只要所有修改的代码都以MPL许可证的形式发布。MPL还要求在修改的代码中包含原始代码的许可证和版权声明。

2.Windows上生成公钥以绑定GitHub仓库

在Windows上生成公钥以绑定GitHub仓库需要进行以下步骤:

  1. 打开Git Bash终端:在开始菜单中搜索Git Bash,或者右键单击您要使用的文件夹,并从上下文菜单中选择“Git Bash Here”。

  2. 创建SSH密钥:在Git Bash终端中,输入以下命令,然后按Enter:

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

这会生成一对RSA密钥,其中包括公钥和私钥。您需要输入自己的电子邮件地址。

3.将公钥添加到GitHub账户:复制公钥内容并将其添加到您的GitHub账户中。您可以在GitHub网站上转到“Settings”(设置)>“SSH and GPG keys”(SSH和GPG密钥),然后单击“New SSH key”(新SSH密钥)按钮,将公钥粘贴到文本框中,然后单击“Add SSH key”(添加SSH密钥)按钮。

4.现在,您已经将公钥添加到GitHub账户中,并可以通过SSH协议使用Git访问GitHub仓库。

注意:如果您需要使用另一个账户访问GitHub仓库,则需要为该账户创建新的SSH密钥。

3.写一个Helloworld

3.1 在开始在github上托管代码前,需要配置账号邮箱信息:

Git可以通过git config命令来配置用户信息,包括用户名和电子邮件地址。这些信息会被Git用于记录每次提交的作者信息。

git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"

3.2 开始提交代码

git clone git@github.com:xxxx/LearnCoding.git  #克隆远程代码
cd /d/MyProject/LearnCoding (main)  #切换到仓库目录
vi test.c  #创建一个test.c文件,然后写个helloworld程序
git status  #查看git跟踪文件状态
git add test.c  #将test.c文件添加到暂存区
git commit -m'你好,新世界'  #将暂存区的内容添加到提交区,并添加说明
git push origin main  #将本地代码推送到远程相同仓库的main分支

克隆github上的仓库

结果演示:如何查看提交的内容

四、帮助学习的网站

常见开源的代码仓库:

GitHub:GitHub是目前最受欢迎的代码托管平台之一,它提供了Git的基本功能,并支持代码审查、项目管理、协作开发等功能。

GitLab:GitLab是一个自托管的Git代码仓库管理工具,它提供了类似GitHub的功能,同时还支持CI/CD、容器注册表等功能。

Bitbucket:Bitbucket是一个基于Git和Mercurial的代码托管平台,它提供了与GitHub类似的功能,同时还提供了一些额外的功能,如JIRA软件集成和支持私有仓库等。

SourceForge:SourceForge是一个开源软件开发平台,它提供了Git、SVN和Mercurial等版本控制系统,并提供了项目管理、协作开发等功能。

Apache Subversion(简称SVN):SVN是一个开源的集中式版本控制系统,它提供了类似Git的版本控制功能,但相比Git,它更加适合处理较小、集中化的代码库。

Codeberg:Codeberg是一个德国的非营利性开源项目托管平台,它提供了基于Git的代码仓库管理功能,同时支持在线代码编辑和协作开发。

Gitea:Gitea是一个基于Git的开源自托管Git代码仓库管理工具,它提供了与GitHub类似的功能,并提供了快速、易用、轻量的体验。

Learning Git branch:可视化的操作演示,非常适合初学者

对应的网址:

GitHub:https://github.com/

GitLab:https://about.gitlab.com/

Bitbucket:https://bitbucket.org/

SourceForge:https://sourceforge.net/

Apache Subversion(简称SVN):https://subversion.apache.org/

Codeberg:https://codeberg.org/

Gitea:https://gitea.io/

Learning Git branch :https://learngitbranching.js.org/

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

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

相关文章

项目第四天

解决了路变墙 墙变路的问题 void onechange(ExMessage* msg) {if (msg->message WM_LBUTTONDOWN && msg->x > 50 && msg->x < 410 && msg->y > 50 && msg->y < 410){//printf("鼠标位置&#xff1a;x&#…

Vue.js中class与style的增强绑定

目录 一、v-bind绑定class属性 &#xff08;1&#xff09;绑定class样式&#xff0c;字符串写法 &#xff08;2&#xff09;绑定class样式&#xff0c;数组写法 &#xff08;3&#xff09;绑定class样式&#xff0c;对象写法 二、v-bind绑定内联样式style &#xff08;1&…

【CSS3】CSS3 属性选择器 ( CSS3 简介 | 属性选择器 | 属性选择器权重 )

文章目录 一、CSS3 简介二、CSS3 属性选择器权重三、CSS3 属性选择器 一、CSS3 简介 CSS3 是在 CSS2 基础上进行扩展后的样式 ; 在 移动端 对 CSS3 的支持 要比 PC 端支持的更好 , 建议在移动端开发时 , 多使用 CSS3 ; PC 端老版本浏览器不支持 CSS3 , 尤其是 IE 9 及以下的版…

【Linux 裸机篇(五)】I.MX6ULL BSP工程管理下的 Makefile编写、链接脚本

目录 一、BSP 工程二、Makefile三、链接脚本 一、BSP 工程 文件夹描述bsp存放驱动文件imx6ul存放跟芯片有关的文件&#xff0c;比如 NXP 官方的 SDK库文件obj存放编译生成的.o 文件project存放 start.S 和 main.c 文件&#xff0c;也就是应用文件 二、Makefile 1 CROSS_COMPI…

ESP32设备驱动-BMA400加速度传感器驱动

BMA400加速度传感器驱动 文章目录 BMA400加速度传感器驱动1、BMA400介绍2、硬件准备3、软件准备4、驱动实现1、BMA400介绍 BMA400 是第一款真正的超低功耗加速度传感器,不会影响性能。 BMA400 具有 12 位数字分辨率、连续测量和定义的可选带宽以及超低功耗,允许对三个垂直轴…

带有时钟使能和同步清零的D触发器

每个 Slice 有 8 个 FF 。四个可以配置为 D 型触发器或电平敏感锁存器&#xff0c;另外四个只能配置为 D 型触发器&#xff0c;但是需要记得是&#xff1a;当原来的四个 FF 配置为锁存器时&#xff0c;不能使用这四个 FF 。 &#xff08;1&#xff09;FDCE 简介 带有时钟使能…

【grpc01】入门

目录 背景 单体架构 微服务架构 代码冗余问题 服务之间调用 grpc protobuf protoc protoc-gen-go 背景 单体架构 有一些致命缺点&#xff1a; 一旦某个服务宕机&#xff0c;会引起整个应用不可用&#xff0c;隔离性差只能整体应用进行伸缩&#xff0c;浪费资源&#…

【Java基础】迷宫问题的Java代码实现

迷宫问题通常是指在给定的迷宫中&#xff0c;找到从起点到终点的路径的问题。迷宫通常由障碍物和自由空间组成&#xff0c;其中障碍物是不可穿越的区域&#xff0c;自由空间可以穿越。解决迷宫问题的方法有很多种&#xff0c;本文使用递归算法来解决迷宫问题。 一、使用递归算法…

MATLAB简单图形绘制(五)

目录 实验目的 实验内容 实验目的 1&#xff09;掌握MATLAB图形绘制的基本原理和方法&#xff1b; 2&#xff09;熟悉和了解MATLAB图形绘制程序编辑的基本指令&#xff1b; 3&#xff09;掌握利用MATLAB图形编辑窗口编辑和修改图形界面&#xff0c;并添加图形的各种标注&…

人工智能技术在软件开发中的应用

人工智能技术的不断发展和成熟&#xff0c;使得它在软件开发中的应用越来越广泛。人工智能技术的应用可以帮助软件开发人员提高效率、降低成本、增强软件的功能性和可靠性。在本文中&#xff0c;我们将探讨人工智能技术在软件开发中的应用&#xff0c;并且提供一些实际案例&…

借助高性能计算的发展十大网络趋势

当今的网络支持复杂企业IT环境中的大量工作负载。而借助高性能计算(HPC)和人工智能/深度学习的应用程序&#xff0c;企业可以满足对更快计算周期、更高数据传输率和出色连接性日益增长的需求。 当今的网络支持复杂企业IT环境中的大量工作负载。而借助高性能计算(HPC)和人工智能…

比spire.pdf速度更快:EVO PDF Print Crack

适用于 .NET 的 EVO PDF 打印 EVO PDF Print 可用于任何类型的 .NET 应用程序&#xff0c;以静默打印 PDF 文档而不显示任何打印对话框。它可以集成到任何 .NET 应用程序中&#xff0c;包括 ASP.NET 网站和桌面应用程序&#xff0c;以便为您的应用程序添加 PDF 打印功能。您可以…

机器学习:基于心脏病数据集的XGBoost分类预测

目录 一、简介 原理&#xff1a; 二、实战演练 1.数据准备 2.数据读取/载入 3.数据预处理 4.可视化处理 5.对离散变量进行编码 6.模型训练与预测 7.特征选择 8.通过调整参数获得更好的效果 核心参数调优 网格调参法 一、简介 XGBoost&#xff08;eXtreme Gradient B…

VOS3000 AXB模块工作原理

VOS AXB 模块适用于语音市场直连运营商或虚拟运营商 X 号平台的业务需求 与 VOS 系统无缝集成&#xff0c;无需独立服务器部署&#xff0c;节约硬件&#xff0c;网络成本 单机支持不低于 2,000 并发 AXB 呼叫&#xff0c;性能是市面常见 AXB 产品的 2-3 倍 支持设定在呼叫接…

Java阶段二Day04

Java阶段二Day04 文章目录 Java阶段二Day04截至此版本可实现的流程图为V9BirdBootApplicationClientHandlerDispatcherServletHttpServletResponseHttpServletRequest V10DispatcherServletHttpServletResponseMETA-INF / mime.types V11EmptyRequestExceptionClientHandlerHtt…

使用Vue脚手架【Vue】

3. 使用 Vue 脚手架 3.1 初始化脚手架 3.1.1 说明 Vue脚手架是Vue官方提供的标准化开发工具&#xff08;开发平台&#xff09;最新的版本是4.x文档&#xff1a;https://cli.vuejs.org/zh/ 3.1.2 具体步骤 第一步&#xff08;仅第一次执行&#xff09;&#xff1a;全局安装…

Foresight对话:刘韧对谈王建硕、曾映龙、Joy Xue

Foresight 2023论坛现场 自2022年11月上线以来&#xff0c;OpenAI研发的ChatGPT一度风靡全球。面对这波AI浪潮&#xff0c;有些人拥抱了新趋势&#xff0c;有些人则担心会被取代&#xff0c;另一些人发掘其中的创业机遇和价值。创业是大浪淘沙的过程&#xff0c;目前以ChatGPT为…

Spring Boot概述(二)

1.SpringBoot整合Junit 1.搭建SpringBoot工程 2.引入starter-test起步依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope> </dependency>…

第二章IDEA快速上传项目到码云

文章目录 下载Git并配置邮箱上传到Github配置Git配置Github账号创建要上传码云的项目 上传到Gitee下载插件配置我们的Gitee账号 我们的IDEA功能很强大&#xff0c;所以肯定集成了快速上传项目到码云的功能 实际的开发中&#xff0c;代码都是采用IDE进行开发&#xff0c;所以我们…

day31—选择题

文章目录 1.在单处理器系统中&#xff0c;如果同时存在有12个进程&#xff0c;则处于就绪队列中的进程数量最多为&#xff08;D&#xff09;2.以下关于多线程的叙述中错误的是&#xff08;C&#xff09;3. 整数0x12345678&#xff0c;在采用bigendian中内存的排序序列是&#x…