Git快速掌握,通俗易懂

Git分布式版本控制工具

介绍


Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是由Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git可以帮助开发者们管理代码的版本,避免代码冲突,方便合并代码等。而在当下Git已经成为最重要的开发工具之一

什么是版本控制?

前面说了这么多,肯定会有博友会问,既然Git是一个版本控制工具,那版本控制又是什么呢?

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。它可以帮助你管理项目中的文件、代码和数据,跟踪它们的变化,以及协同团队成员之间的工作。

举个例子,对于软件来说,我们所知的修图软件ps有2023版、2022版等不同版本,而代码编辑器vscode也有2021版、2019版等多个版本。这里所指的就是这些软件的版本。对于文件来说,版本控制也是非常重要的。无论是文档、图片还是代码文件,我们都可能需要创建不同版本的副本来追踪和管理变化。

举个例子,假设你正在编辑一份报告文档,你可能会经历多次修改和修订。每次修改后,你可以使用版本控制系统保存一个新的版本,以便随时回溯到之前的版本。这样,如果你发现某个修改有问题或者想要查看之前的更改,你可以轻松地找到并恢复到之前的版本。

另外,版本控制也可以用于团队协作。当多个人同时编辑同一个文件时,版本控制系统可以自动检测冲突并帮助解决。每个人所做的修改都会被视为不同的版本,系统会将它们合并在一起,确保最终的文件是完整且没有冲突的。

为什么要学习Git?

常见的版本控制工具有Git、Subversion(SVN)、Mercurial等,而Git因为其开源的特性已经是现在最流行的版本控制工具

Git不仅可以进行版本控制,还能将文件内容以及版本记录保存在远程服务器上。这样,无论你在哪里,只要有网络连接,就可以获取到你的项目文件,极大地提高了工作的便捷性。

虽然Git在存储空间上比SVN更占用空间,(因为Git在每个端都保留了所有的版本历史),但是其在流行程度、功能丰富方面却比SVN有优势。Git 相对于SVN不仅仅是个版本控制系统,它也是个内容管理系统,工作管理系统等。因此,学习Git无疑是一个值得的选择。

git工作原理 / 流程:

fetch/clone
checkout
push
checkout
add
commit
Remote
Repository
workspace
lndex

Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

这个流程图描述了 Git 的常用命令之间的关系:

  • 开发人员可以使用 git clone 从远程仓库克隆项目到本地。
  • 他们可以使用 git push 将本地仓库的更改推送到远程仓库。
  • 他们可以使用 git add 将文件添加到暂存区。
  • 然后使用 git commit 将暂存区的更改提交到本地仓库。
  • 使用 git checkout 可以在分支之间切换,以及创建新的分支。

git pull 命令包含在 git clonegit checkout 中,因为它用于从远程仓库拉取最新更改到本地仓库。

1. Git安装配置


在使用Git之前,我们需要先安装GitGit目前支持在Linux/Unix、Solaris、Mac和Windows平台上运行。
Git的各平台安装包下载地址如下:https://git-scm.com/downloads
在这里插入图片描述
点击Windonws版本安装即可,完成安装之后,就可以使用命令行的 git 工具

在这里插入图片描述
我们点击右键这里会出现两个新的右键菜单,一个叫做Git GUI here,一个叫做Git Bash here

  • Git GUI here就是它自带的客户端工具
  • Git Bash here是一个命令行窗口

基本配置

点击Git Bash here在命令行窗口进行一下配置

1.设置用户信息

用户名:

git config --global user.name "注册名"

邮箱:

git config --global user.email "注册邮箱"

2.查看配置信息

查看全局配置信息:

git config --global --list

这将列出全局配置信息,包括用户名、邮箱等。
在这里插入图片描述

2. 远程仓库配置


远程仓库有很多,比如github,国内的码云,局域网自建git服务器,托管在其他地方的服务器,本文以github为例
网址https://github.com没有注册的可以先去注册一下

新建仓库: 点击右上角,加号,new repository
在这里插入图片描述

下一步
请添加图片描述

填写完成后 点击右下发创建存储库
在这里插入图片描述

如,我已经建立好的仓库
在这里插入图片描述

3. 生成(配置)SSH


git客户端安装后,如何和远程仓库,如github连接呢?我们使用SSH。

SSH是Secure Shell的缩写,它是一种用于安全远程登录到计算机系统并在网络上传输数据的协议。SSH通过加密的方式保护数据在网络上传输的安全性,因此它广泛应用于远程管理和文件传输

我们刚注册完账号后还没有配置SSH密钥,我们先生成一个SSH
在这里插入图片描述

检查是否已有SSH密钥对:

在终端(Linux和macOS)或命令提示符(Windows)中运行以下命令来检查是否已经存在SSH密钥对:

ls -al ~/.ssh

如果已经存在密钥对,则会显示在该目录下。

生成SSH(以有SSH可以跳过这一步)

ssh-keygen -t rsa -C "自己的邮箱"

生成成功,如下图所示:
SSH文件存放在C:/User/用户/.ssh

  • id_rsa: 这是你的SSH私钥文件。私钥文件用于身份验证,通常不应该泄露给其他人。

  • id_rsa.pub: 这是与私钥相关联的公钥文件。公钥文件可以与他人共享,以便他们将其添加到他们的服务器上,以允许你通过私钥进行身份验证

在这里插入图片描述

如果找不到C:/User/用户/.ssh

生成一个新的SSH密钥
打开 Git Bash,输入如下命令,然后连续按三个回车即可:

ssh-keygen -t rsa -C "你的邮箱"

然后会出来提示Enter file in which to save the key 后面是一个路径,你就会找到你想要的.ssh文件夹了,去电脑里找吧
在这里插入图片描述

github配置SSH

用记事本打开id_rsa.pub文件,全选,复制全文
在这里插入图片描述

打开github 点击右上角用户头像 点击设置 点击SSH密钥
请添加图片描述

点击New SSH key创建一个新SSH密钥
请添加图片描述

起一个标题,将之前复制的密钥粘贴上去
在这里插入图片描述

测试SSH连接,在控制台输入

ssh -T git@github.com

按照提示输入yes,回车,提示successfully之类的就说明SSH连接正常,github上的钥匙也会变成绿色
在这里插入图片描述

4. 推送文件到远程仓库


建立本地仓库

选择一个需要版本管理的项目文件夹,这里以我桌面的一个文件夹为例
在这里插入图片描述
打开文件夹右键 git bash中执行命令,将该文件夹初始化为一个仓库

git init

在这里插入图片描述
执行命令后文件夹内会出现一个隐藏的文件夹.git,没有的话,设置一下文件夹选项,显示隐藏文件
在这里插入图片描述

远程推送文件

基本流程:add->commit->push

  1. 添加并提交文件到本地仓库:
    使用 git add 命令将文件添加到暂存区,然后使用 git commit 命令将文件提交到本地仓库:

    git add <文件名>
    git commit -m "提交信息"
    
  2. 连接到远程仓库:
    如果还没有连接到远程仓库,你需要使用 git remote add 命令添加远程仓库地址:

    git remote add origin <远程仓库URL>
    

    其中 <远程仓库URL> 是你在GitHub上创建的仓库的地址。
    在这里插入图片描述

  3. 推送本地提交到远程仓库:
    一旦连接到了远程仓库,你可以使用 git push 命令将本地提交推送到远程仓库:

    git push origin <分支名>
    

    其中 <分支名> 是你要推送到的远程仓库的分支名称。

    如果想要首次推送到 master(主要分支),加上 -u 参数会将本地分支与远程分支关联起来。

    git push -u origin master
    

在这里插入图片描述
提交成功
在这里插入图片描述

常用的Git命令及其用法


  1. git init:初始化一个新的Git仓库。

    git init
    
  2. git clone:克隆现有仓库到本地。

    git clone <仓库URL>
    
  3. git add:将文件添加到暂存区。

    git add <文件名>
    
  4. git commit:将暂存区中的文件提交到本地仓库。

    git commit -m "提交信息"
    
  5. git status:查看当前工作区和暂存区的状态。

    git status
    
  6. git log:查看提交历史记录。

    git log
    
  7. git branch:列出本地分支,或者创建新分支。

    git branch <分支名>
    
  8. git checkout:切换分支。

    git checkout <分支名>
    
  9. git merge:合并指定分支到当前分支。

    git merge <要合并的分支>
    
  10. git pull:拉取远程仓库的变化并合并到本地。

    git pull origin <分支名>
    
  11. git push:推送本地变化到远程仓库。

    git push origin <分支名>
    
  12. git remote -v:查看远程仓库的信息。

    git remote -v
    
  13. git remote add:添加一个新的远程仓库。

    git remote add <远程仓库名> <仓库URL>
    
  14. git remote remove:移除指定的远程仓库。

    git remote remove <远程仓库名>
    
  15. git diff:查看工作区与暂存区的差异。

    git diff
    

这些是Git中一些常见的命令,但Git还提供了许多其他功能强大的命令,可以根据实际需要查阅Git官方文档或者通过 git --help 查看帮助信息。

结语


Git是一个强大的版本控制系统,通过掌握上述基本概念和常用命令,你可以更好地管理和协作项目代码。除了本文介绍的内容,Git还有许多高级功能和技巧,可以根据实际需求进行学习和探索。希望本文能够帮助你快速入门Git,并在日常开发中得到应用。

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

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

相关文章

机器学习分类评估四个术语TP,FP,FN,TN

分类评估方法主要功能是用来评估分类算法的好坏&#xff0c;而评估一个分类器算法的好坏又包括许多项指标。了解各种评估方法&#xff0c;在实际应用中选择正确的评估方法是十分重要的。 这里首先介绍几个常见的模型评价术语&#xff0c;现在假设我们的分类目标只有两类&#x…

Dockerfile 常用指令

1、FROM 指定base镜像。 2、Docker history 显示镜像的构建历史&#xff0c;也就是Dockerfile的执行过程。 Missing 表示无法获取IMAGE ID&#xff0c;通常从Docker Hub下载的镜像会有这个问题。 3、调试Dockerfile&#xff0c;使用sudo docker run -it XXXX&#xff0c;XXXX…

英文单词-计算:Calculate与Compute的区别是什么

英文单词-计算:Calculate与Compute的区别是什么 compute 源自法语&#xff1b;calculate 源自拉丁语。在使用上&#xff0c;calculate 使用得更为广泛 calculate侧重人的分析&#xff0c;而compute侧重机器的运算。 calculator是“计算器”&#xff0c;而computer是“计算机”…

输入输出自定义映射矩阵(数据结构树)

输出自定义FC其它算法实现&#xff0c;可以参考下面文章&#xff1a; https://rxxw-control.blog.csdn.net/article/details/125994252https://rxxw-control.blog.csdn.net/article/details/125994252下面我们看下我们的控制要求。在学习本篇博客之前大家可以熟悉下数据结构图…

Mybatis——Javaweb进阶学习(五)

目录 一、Mybatis快速入门1.创建Springboot工程&#xff0c;数据库表user&#xff0c;实体类User2.引入Mybaties相关依赖3.编写Sql语句 二、lombok1.基本概念2.使用方法 三、基础操作1.环境准备a.数据库准备b.创建员工实体类Emp数据类型对比命名对比 c.Mapper接口创建 2.删除操…

CSS盒子的概念

盒子模型 盒子的概念 页面中的每一个标签都可以看做是一个“盒子”&#xff0c;通过盒子的视角更方便的进行布局 浏览器在渲染&#xff08;显示&#xff09;网页时&#xff0c;会将网页中的元素看做是一个个的矩形区域&#xff0c;称之为“盒子” 盒子模型 CSS中规定每个盒…

从计算机恢复已删除文件的 6 种方法!

如果您的重要文件之一已从计算机中删除怎么办&#xff1f;如果不小心从硬盘中删除了文件怎么办&#xff1f; 如今的公司通常将重要数据存储在云或硬盘中。但最重要的是&#xff0c;您必须考虑这样一个事实&#xff1a;您可能会丢失计算机上的数据。数据丢失的原因有多种&#x…

C语言-----用二维数组解决菱形的打印问题

1.打印菱形&#xff0c;多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;&#xff0c;表示输出的行数&#xff0c;也表示组成“X”的反斜线和正斜线的长度。 #include <stdio.h>int main() {int n0;while(scanf("%d",&n)! EOF){int i0;int j0;f…

【数据结构】12 堆栈应用:表达式求值

表达式类型 后缀表达式 有一个常量表达式的中缀表达式为&#xff1a;5 6 / 2 - 3 * 4&#xff0c;其后缀形式表示为&#xff1a; 5 6 2 / 3 4 -。后缀表达式的特点是运算符位于两个预算数之后。其前缀表达式为&#xff1a; - 5 / 6 2 3 4。 后缀表达式相比于中缀表达式的…

彻底理解无刷电机

前言 现在很多设备都是搭载的无刷电机而不是有刷电机了&#xff0c;为啥&#xff1f;性能好啊&#xff01; 引入 同性相斥异性相吸 可以看出&#xff0c;只要改变磁铁的极性&#xff0c;电机就能转起来 那 怎么改变磁铁极性呢&#xff1f; 右手螺旋定则可以根据电流的流向…

可变参数(c/c++)

目录 一、C语言版本 二、C的实现方法 2.1数据包 2.2sizeof...运算符 2.3可变参数模板的使用 2.4emplace_back() 有时候我们在编写函数时&#xff0c;可能不知道要传入的参数个数&#xff0c;类型 。比如我们要实现一个叠加函数&#xff0c;再比如c语言中的printf,c中的emp…

2024年2月份实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先&#xff0c;来看下效果图 在线体验地址&#xff1a;https://geojson.hxkj.vip&#xff0c;并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

Springboot+vue的大学生智能消费记账系统的设计与实现(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的大学生智能消费记账系统的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的大学生智能消费记账系统的设计与实现&#xff0c;采…

回溯题中借助哈希法来巧妙去重的操作

今天总结一下回溯法以来做过的这些题&#xff0c;我又发现一个困扰了我的问题&#xff0c;就是在491. 非递减子序列、46. 全排列、47. 全排列 II中都有涉及到用哈希法&#xff0c;去记录曾经用过的元素&#xff0c;下面来总结一下吧。 首先得知道&#xff0c;为什么会用到哈希法…

wordpress外贸成品网站模板

首页大图slider轮播&#xff0c;橙色风格的wordpress外贸网站模板 https://www.zhanyes.com/waimao/6250.html 蓝色经典风格的wordpress外贸建站模板 https://www.zhanyes.com/waimao/6263.html

RapidMiner数据挖掘2 —— 初识RapidMiner

本节由一系列练习与问题组成&#xff0c;这些练习与问题有助于理解多个基本概念。它侧重于各种特定步骤&#xff0c;以进行直接的探索性数据分析。因此&#xff0c;其主要目标是测试一些检查初步数据特征的方法。大多数练习都是关于图表技术&#xff0c;通常用于数据挖掘。 为此…

【复现】cellinx摄像设备 未授权漏洞_50

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 cellinx是一家韩国的摄像设备 二 .漏洞影响 通过未授权访问可以创建用户进入后台&#xff0c;可能造成系统功能破坏。 三.漏洞复…

多线程面试题汇总

多线程面试题汇总 一、多线程1、线程的生命周期2、线程的创建&#xff08;函数创建&#xff09;3、线程的创建&#xff08;使用类&#xff09;4、守护线程 二、全局解释器锁1、使用单线程实现累加到5000000002、使用多线程实现累加到5000000003、总结 三、线程安全1、多线程之数…

SQL的1999语法

目录 交叉连接 实现交叉连接 自然连接 实现自然连接&#xff08;实际上就是内连接&#xff09; ON和USING 使用自然连接时要求两张表的字段名称相同&#xff0c;但是如果不相同或者两张表中有两组字段是重名,这时就要利用 ON 子句指定关联条件&#xff0c;利用 USING 子句…

【Android】使用Apktool反编译Apk文件

文章目录 1. 下载Apktool1.1 Apktool官网下载1.2 百度网盘下载 2. 安装Apktool3. 使用Apktool3.1 配置Java环境3.2 准备Apk文件3.3 反编译Apk文件3.3.1 解包Apk文件3.3.2 修改Apk文件3.3.3 打包Apk文件3.3.4 签名Apk文件 1. 下载Apktool 要使用Apktool&#xff0c;需要准备好 …