Git——C站最详细的Git教程,一篇学会Git(window\linux通用)

news/2025/3/31 10:24:29/

Git——C站最详细的Git教程,一篇学会Git(window\linux通用)

文章目录

  • Git——C站最详细的Git教程,一篇学会Git(window\linux通用)
  • Git简介
    • Git
    • 作用
    • 为什么要进行源代码管理?
    • Git的诞生
    • Git管理源代码特点
    • Git操作流程图解
  • 工作区暂存区和仓库区
        • 工作区
        • 暂存区
        • 仓库区
  • Git单人本地仓库操作
    • **1.安装git**
    • **2.查看git安装结果**
    • **3.创建项目**
    • **4.创建本地仓库**
    • **5.配置个人信息**
    • **6.新建py文件**
    • **7.查看文件状态**
    • **8.将工作区文件添加到暂存区**
    • **10.接下来就可以在**`login.py`**文件中编辑代码**
    • **11.查看历史版本**
    • **12.回退版本**
    • **13.撤销修改**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oGv54yyt-1684476308647)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/image-20230519140302851.png)]

Git简介

Git

  • Git 是目前世界上最先进的分布式版本控制系统(没有之一)

作用

  • 源代码管理

为什么要进行源代码管理?

  • 方便多人协同开发
  • 方便版本控制

Git的诞生

  • 作者是 Linux 之父:Linus Benedict Torvalds
  • 当初开发 Git 仅仅是为了辅助 Linux 内核的开发(管理源代码)

git 开发时间表

  • git 的产生是 Linux Torvals 在无奈被逼的情况下创造的,我看了一下时间历程:
    • 2005 年 4 月3 日开始开发 git
    • 2005 年 4 月 6 日项目发布
    • 2005 年 4 月 7 日 Git 开始作为自身的版本控制工具
    • 2005 年 4 月 18 日发生第一个多分支合并
    • 2005 年 4 月 29 日 Git 的性能达到 Linux 预期
    • 2005年 7 月 26 日 Linux 功成身退,将 Git 维护权交给 Git 另一个主要贡献者 Junio C Hamano,直到现在

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

Git管理源代码特点

  • 1.Git是分布式管理.服务器和客户端都有版本控制能力,都能进行代码的提交、合并、…

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gSZEN22s-1684476308651)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%88%86%E5%B8%83%E5%BC%8F%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6.png)]

  • 2.Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cuuu6xtm-1684476308653)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%9C%AC%E5%9C%B0%E4%BB%93%E5%BA%93.png)]

Git操作流程图解

Git服务器 --> 本地仓库 --> 客户端 --> 本地仓库 --> Git服务器

git clone xxx

git add .

git commit -m ‘xxx’

git push

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wMofyoQ9-1684476308654)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/GIT%E6%93%8D%E4%BD%9C%E5%9B%BE%E8%A7%A3.png)]

工作区暂存区和仓库区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-shefSdjr-1684476308655)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%B7%A5%E4%BD%9C%E5%8C%BA%E6%9A%82%E5%AD%98%E5%8C%BA%E5%92%8C%E4%BB%93%E5%BA%93%E5%8C%BA-16844667931571.png)]

工作区

  • 对于添加修改删除文件的操作,都发生在工作区中

暂存区

  • 暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分

仓库区

  • 仓库区表示个人开发的一个小阶段的完成
    • 仓库区中记录的各版本是可以查看并回退的
    • 但是在暂存区的版本一旦提交就再也没有了

Git单人本地仓库操作

  • 课程目标:学习常用的Git终端命令
  • 提示:本地仓库是个.git隐藏文件

以下为演示Git单人本地仓库操作

1.安装git

linux上

  sudo apt-get install git密码:chuanzhi

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZGUgx4RQ-1684476308658)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%AE%89%E8%A3%85Git-16844669628062.png)]

​ windows

可以到 GitHub 的页面上下载 exe 安装文件并运行:

安装包下载地址:https://gitforwindows.org/

官网慢,可以用国内的镜像:https://npm.taobao.org/mirrors/git-for-windows/。

2.查看git安装结果

  git

3.创建项目

  • 在桌面创建test文件夹,表示是工作项目

      Desktop/test/
    

windows

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQcXiowz-1684476308661)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/image-20230519113331535.png)]

4.创建本地仓库

  1. 进入到test,并创建本地仓库.git

  2. 新创建的本地仓库.git是个空仓库

      cd Desktop/test/git init
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G58TIySZ-1684476308663)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%88%9B%E5%BB%BA%E6%9C%AC%E5%9C%B0%E4%BB%93%E5%BA%93-16844672443655.png)]

  3. 创建本地仓库.git

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gz4OApUc-1684476308664)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E7%A9%BA%E4%BB%93%E5%BA%93-16844672496926.png)]

进入该待显示的文件路径,ctrl + h ,则显示隐藏文件

5.配置个人信息

  git config user.name '张三'git config user.email 'zhangsan@163.com'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lRF1jQjL-1684476308666)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E9%85%8D%E7%BD%AE%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF-16844672592717.png)]

  • 配置个人信息后

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4i58WU84-1684476308667)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E9%85%8D%E7%BD%AE%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF%E5%90%8E-16844672677588.png)]

默认不配置的话,会使用全局配置里面的用户名和邮箱
全局git配置文件路径:~/.gitconfig

6.新建py文件

  • 在项目文件test里面创建login.py文件,用于版本控制演示

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LhKnGG5U-1684476308669)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E9%A1%B9%E7%9B%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E6%83%85-16844672825239.png)]

7.查看文件状态

  • 红色表示新建文件或者新修改的文件,都在工作区.

  • 绿色表示文件在暂存区

  • 新建的login.py文件在工作区,需要添加到暂存区并提交到仓库区

    git status
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KlwKKncM-1684476308670)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%9F%A5%E7%9C%8B%E6%96%87%E4%BB%B6%E7%8A%B6%E6%80%81-168446729131510.png)]

8.将工作区文件添加到暂存区

  # 添加项目中所有文件git add .或者# 添加指定文件git add login.py

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWDZXViK-1684476308672)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%9A%82%E5%AD%98%E5%8C%BA-168446730137111.png)]

9.将暂存区文件提交到仓库区

  • commit会生成一条版本记录

  • -m后面是版本描述信息

    git commit -m '版本描述'
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mOrFQUqi-1684476308673)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%8F%90%E4%BA%A4%E5%88%B0%E4%BB%93%E5%BA%93%E5%8C%BA-168446730896512.png)]

10.接下来就可以在login.py文件中编辑代码

  • 代码编辑完成后即可进行addcommit操作

  • 提示:添加和提交合并命令

      git commit -am "版本描述"
    
  • 提交两次代码,会有两个版本记录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rVuqVt6z-1684476308675)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E4%B8%A4%E6%AC%A1%E7%89%88%E6%9C%AC%E6%8F%90%E4%BA%A4-168446731720913.png)]

一般到这里就可以愉快的

git push 推送到远程仓库了

后面的操作是为了方便修改错了,来回退版本的(push之后也可以回退,可以去服务器上找版本号来回退)

11.查看历史版本

  git log或者git reflog

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rKVODtpN-1684476308677)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%9F%A5%E7%9C%8B%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95log-168446732409214.png)]

git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 则不能察看已经删除了的commit记录

12.回退版本

  • 方案一:

    • HEAD表示当前最新版本

    • HEAD^表示当前最新版本的前一个版本

    • HEAD^^表示当前最新版本的前两个版本,以此类推…

    • HEAD~1表示当前最新版本的前一个版本

    • HEAD~10表示当前最新版本的前10个版本,以此类推…

      git reset --hard HEAD^
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8cj7eNmY-1684476308678)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%9B%9E%E9%80%80%E7%89%88%E6%9C%ACHEAD-168446738393319.png)]

  • 方案二:当版本非常多时可选择的方案

    • 通过每个版本的版本号回退到指定版本

        git reset --hard 版本号
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3wWiPDVp-1684476308679)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E5%9B%9E%E9%80%80%E7%89%88%E6%9C%AC%E7%89%88%E6%9C%AC%E5%8F%B7-168446736568018.png)]

13.撤销修改

  • 只能撤销工作区、暂存区的代码,不能撤销仓库区的代码

  • 撤销仓库区的代码就相当于回退版本操作

    • 撤销工作区代码

      • 新加代码num3 = 30,不add到暂存区,保留在工作区

        git checkout 文件名
        

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wq9Vl9NZ-1684476308683)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%92%A4%E9%94%80%E5%B7%A5%E4%BD%9C%E5%8C%BA%E4%BB%A3%E7%A0%81%E5%89%8D-168446740552620.png)]

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7x497kdd-1684476308683)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%92%A4%E9%94%80%E5%B7%A5%E4%BD%9C%E5%8C%BA%E4%BB%A3%E7%A0%81%E5%90%8E-168446741063421.png)]

    • 撤销暂存区代码

      • 新加代码num3 = 30,并add到暂存区

        # 第一步:将暂存区代码撤销到工作区
        git reset HEAD  文件名
        # 第二步:撤销工作区代码
        git checkout 文件名
        

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GSIuq9ah-1684476308685)(Git%E2%80%94%E2%80%94C%E7%AB%99%E6%9C%80%E8%AF%A6%E7%BB%86%E7%9A%84Git%E6%95%99%E7%A8%8B%EF%BC%8C%E4%B8%80%E7%AF%87%E5%AD%A6%E4%BC%9AGit.assets/%E6%92%A4%E9%94%80%E6%9A%82%E5%AD%98%E5%8C%BA%E4%BB%A3%E7%A0%81-168446742386822.png)]

学弯路这篇,基本上就会了Git,可以自己去github上注册个人账号了,注册完账号,就可以自己搭建自己个人github主页了

附上作者的github主页链接:https://github.com/571290717

在这里插入图片描述


http://www.ppmy.cn/news/71766.html

相关文章

modbus协议与nodejs modbus-serial实现

nodejs可通过modbus-serial库来实现modbus协议 npm install modbus-srial 安装完后在examples目录下有例子说明如何使用,本文主要讲述作为客户端的使用方式。 polling_RTU是使用485串口来实现modbus通信, polling_TCP和 polling_UDP则使用TCP/UDP来实现…

深度学习中关于图像分类的设计

目录 一、前言 二、项目介绍 三、项目展示 四、项目经验分享 一、前言 深度学习是一种基于人工神经网络的机器学习技术,通过多层非线性变换来学习数据的高级抽象表示。深度学习在图像、语音、自然语言处理等领域都有广泛应用。深度学习的优点是可以处理大量数据…

AI 生成第6篇测试文章:用例编写指南

背景 在软件开发中,用例是描述系统如何与用户及其他系统交互的通用模型。用例可以帮助开发人员更好地理解和设计软件系统,同时也可作为系统的文档。因此,在编写用例时需要非常注意内容的细节和质量。 用例需要包含的内容 在编写用例时&…

【SpringBoot整合RabbitMQ(下)】

八、死信队列 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了, consumer 从 queue 取出消…

在博客逮到一个阿里8年测试开发,聊过之后我悟了....

老话说的好,这人呐,一旦在某个领域鲜有敌手了,就会闲得疋虫疼。前几天我在上班摸鱼刷社区的时候认识了一位腾讯测试开发大佬,在阿里工作了8年,因为本人天赋比较高,平时工作也兢兢业业,现在企业内…

Git安装应用

Git版本控制 1. 概述 1.1 什么是版本控制 开发中实际场景 场景一:备份 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月以来的努力付之东流 ​ 场景二:代码还…

OpenGL之创建窗口

目录 什么是OpenGL? 核心模式与立即渲染模式 立即渲染模式 (Immediate mode) 核心模式(Core-profile) 状态机 对象 创建窗口 配置环境 什么是OpenGL? 一般它被认为是一个API(Application Programming Interface, 应用程序编程接口),…

【Linux内核解析-linux-5.14.10-内核源码注释】Linux系统关于多进程和多线程相关知识点

Linux系统关于多进程和多线程的问题,常见的有以下几个: 什么是进程和线程? 进程是操作系统资源分配的最小单位。它包括程序、数据和进程控制块(PCB),是一个正在运行中的程序实例。每个进程都有自己的内存…