Git秘籍大公开:从基础概念到高级技巧的全面解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 在软件开发的征途中,Git如同导航明灯,以其分布式、高效的特性引领着团队前行。本篇博客将带您走进Git的世界,从诞生背景到核心操作流程,一一揭秘。我们将深入讲解工作区、暂存区、仓库区的概念,并详述Git单人本地仓库的操作步骤,包括创建、配置、提交、版本管理等。此外,还将展示Git远程仓库(如Github、Gitee)的协作魅力,通过实例演示项目克隆、多人协作、冲突解决及分支管理等高级技巧。

前言

    在软件开发的征途中,Git如同导航明灯,以其分布式、高效的特性引领着团队前行。本篇博客将带您走进Git的世界,从诞生背景到核心操作流程,一一揭秘。我们将深入讲解工作区、暂存区、仓库区的概念,并详述Git单人本地仓库的操作步骤,包括创建、配置、提交、版本管理等。此外,还将展示Git远程仓库(如Github、Gitee)的协作魅力,通过实例演示项目克隆、多人协作、冲突解决及分支管理等高级技巧。


在这里插入图片描述


一、Git基础介绍

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

1. 作用

  • 源代码管理
    • Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

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

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

    3. Git的诞生

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

    git 开发时间表:

    • 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 等等。
    国内从2013年 Gitee 代码托管平台上线至推出企业版之前的三年多时间中,Gitee 平台已托管了 2000 万+个仓库,是国内知名的代码托管平台。

4. Git管理源代码特点

  • 1.Git是一种分布式版本管理系统,服务器和客户端都具备版本控制能力,都能执行代码的提交、合并等操作
    在这里插入图片描述
  • 2.Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库

5. Git操作流程图解

Git服务器 --> 本地仓库 --> 客户端 --> 本地仓库 --> Git服务器
在这里插入图片描述


二、工作区暂存区和仓库区介绍

在这里插入图片描述

1. 工作区

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

    2. 暂存区

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

3. 仓库区

  • 仓库区表示个人开发的一个小阶段的完成

    • 仓库区中记录的各版本是可以查看并回退的
    • 但是在暂存区的版本一旦提交就再也没有了

三、Git单人本地仓库操作

  • ps:本地仓库是个.git隐藏文件

1. 安装git

git官网:https://git-scm.com/

 Linux中安装操作,window中请下载安装包直接安装
 sudo apt-get install git
  密码:Linux密码

2. 查看git安装结果

git -v

3. 创建项目

首页创建对应存放文件夹,表示是工作项目

  通过 cd d/work/test/
  进入到对应目录下

4. 创建本地仓库

  1. 进入到test,并创建本地仓库.git
  2. 新创建的本地仓库.git是个空仓库
git init
  1. 创建本地仓库.git

    进入该待显示的文件路径,则显示隐藏文件.git

5. 配置个人信息

这里是全局配置个人信息

  git config --global user.name "zhangsan"
  git config --global user.email "zhangsan@163.com"
  • 只在本地单个仓库进行配置个人信息,可以去掉--global进行配置。

  • 默认不配置的话,会使用全局配置里面的用户名和邮箱

本地:
在这里插入图片描述

全局git配置文件路径:~/.gitconfig

在这里插入图片描述

6. 新建py文件

  • 在项目文件test里面创建testa.py文件,用于版本控制演示
    在这里插入图片描述

7. 查看文件状态

  • 红色表示新建文件或者新修改的文件,都在工作区.
  • 绿色表示文件在暂存区
  • 新建的testa.py文件在工作区,需要添加到暂存区并提交到仓库区
git status

在这里插入图片描述

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

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

在这里插入图片描述

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

  • commit会生成一条版本记录
  • -m后面是版本描述信息
    git commit -m '版本描述'
    
    在这里插入图片描述

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

  • 代码编辑完成后即可进行addcommit操作
  • 提示:添加和提交合并命令
  git commit -am "版本描述"
  • 提交两次代码,会有两个版本记录
  • 在这里插入图片描述
  • 分两次提交在这里插入图片描述

    11.查看历史版本

  git log
  或者
  git reflog

在这里插入图片描述

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

12. 回退版本

方案一:使用HEAD进行回退

  • HEAD表示当前最新版本
  • HEAD^表示当前最新版本的前一个版本
  • HEAD^^表示当前最新版本的前两个版本,以此类推...
  • HEAD~1表示当前最新版本的前一个版本
  • HEAD~10表示当前最新版本的前10个版本,以此类推...
git reset --hard HEAD^

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

  • 通过每个版本的版本号回退到指定版本
  git reset --hard 版本号

在这里插入图片描述

回退完成后,testa.py的内容:
在这里插入图片描述

13. 撤销修改

  • 只能撤销工作区暂存区的代码,不能撤销仓库区的代码
  • 撤销仓库区的代码就相当于回退版本操作
    • 撤销工作区代码
      • 新加代码print("hello world 3"),不add到暂存区,保留在工作区
      • git checkout 文件名
- 撤销暂存区代码

    - 新加代码`print("hello world 3")`,并`add`到暂存区
# 第一步:将暂存区代码撤销到工作区
git reset HEAD  文件名
# 第二步:撤销工作区代码
git checkout 文件名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章
|
22天前
|
开发工具 Android开发 开发者
移动应用开发之旅:从概念到市场的全景解析
在数字化浪潮的推动下,移动应用成为了我们日常生活的一部分。本文将带你穿越移动应用开发的迷宫,探索那些让应用从一个简单的想法变成数百万用户手中宝贝的秘密。我们将一探究竟,了解移动操作系统的基础、开发工具的选择、设计原则的应用,以及市场策略的实施。无论你是开发者还是对移动应用充满好奇的旁观者,这篇文章都将为你揭示移动应用背后的魔法。
28 0
|
22天前
|
存储 机器学习/深度学习 数据采集
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
|
20天前
|
运维 负载均衡 算法
“分布式基础概念”全面解析,让你秒懂分布式系统!【一】
该博客文章全面解析了分布式系统的基础概念,包括微服务架构、集群与分布式的区别、节点定义、远程调用、负载均衡、服务注册与发现、配置中心、服务熔断与降级以及API网关,帮助读者快速理解分布式系统的关键组成部分和工作原理。
“分布式基础概念”全面解析,让你秒懂分布式系统!【一】
|
30天前
|
XML API 数据库
商品详情数据API接口概念(sku详情图属性等全面的解析)
商品详情数据API接口是指一种编程接口(API, Application Programming Interface),它允许开发者或系统以编程方式获取商品的详细信息,包括但不限于SKU(Stock Keeping Unit,库存量单位)的详细信息、商品图片、商品属性、价格、库存状态、用户评价等。这种接口通常由电商平台、商品数据库服务商或第三方数据提供商提供,旨在帮助开发者或企业快速集成商品数据到其应用程序或系统中。
|
3月前
|
数据可视化 算法 大数据
深入解析高斯过程:数学理论、重要概念和直观可视化全解
这篇文章探讨了高斯过程作为解决小数据问题的工具,介绍了多元高斯分布的基础和其边缘及条件分布的性质。文章通过线性回归与维度诅咒的问题引出高斯过程,展示如何使用高斯过程克服参数爆炸的问题。作者通过数学公式和可视化解释了高斯过程的理论,并使用Python的GPy库展示了在一维和多维数据上的高斯过程回归应用。高斯过程在数据稀疏时提供了一种有效的方法,但计算成本限制了其在大数据集上的应用。
71 1
|
3月前
|
存储 关系型数据库 MySQL
MySQL Change Buffer 深入解析:概念、原理及使用
MySQL Change Buffer 深入解析:概念、原理及使用
MySQL Change Buffer 深入解析:概念、原理及使用
|
2月前
|
Kubernetes 负载均衡 Cloud Native
Kubernetes经典理论与核心概念解析
Kubernetes经典理论与核心概念解析
|
3月前
|
前端开发 安全 Java
Spring EL表达式:概念、特性与应用深入解析
Spring EL表达式:概念、特性与应用深入解析
|
3月前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
41 3
|
3月前
计算机网络:信道复用技术概念解析
计算机网络:信道复用技术概念解析
59 0

推荐镜像

更多
下一篇
DDNS