当前位置: 首页 > news >正文

Git的常用命令以及使用场景

文章目录

  • 1.前言
  • 2.工作区,暂存区,版本库简介
  • 3.Git的常用命令
  • 4.版本回退
  • 5.撤销修改
  • 6.删除文件
  • 7.总结

在这里插入图片描述

1.前言

在学习Git命令之前,需要先了解工作区,暂存区和版本库这三个概念

2.工作区,暂存区,版本库简介

在使用Git进行版本控制时,有三个重要的概念:工作区、暂存区和版本库

  1. 工作区(Working Directory):工作区是指项目所在的目录,是进行代码编写和修改的地方。在工作区中,可以添加、修改或删除文件。
  2. 暂存区(Staging Area):暂存区是Git中的一个中间区域,用于临时存放我们修改过的文件。在我们对工作区中的文件进行修改后,需要将修改的文件添加到暂存区,以便在提交时将暂存区的内容添加到版本库中。
  3. 版本库(Repository):版本库是Git中的核心部分,它保存了项目的所有历史记录和文件状态。版本库分为本地版本库和远程版本库两部分。本地版本库保存在本地计算机上,包括暂存区和分支等信息;远程版本库保存在远程服务器上,用于多人协作开发和代码的备份。

在Git的工作流程中,我们对工作区的文件进行修改后,将修改的文件添加到暂存区,再将暂存区的内容提交到版本库中,形成一个新的版本。这样可以方便地管理代码的修改历史和进行代码的版本控制。

Git的工作流程通常如下:

  1. 在工作区修改(添加、修改、删除)文件。
  2. 将修改的文件添加到暂存区,使用git add命令。
  3. 将暂存区的文件提交到版本库,使用git commit命令。
  4. 将本地提交推送到远程仓库,使用git push命令

在使用git add提交修改的文件到暂存区时有两种方式:

# 添加指定文件(可以一次添加多个)到git中 
git add [文件1] [文件2]...
# 添加当前所有文件到git中
git add .

而在git commit命令时,可以描述当前文件的修改信息

git commit -m "文件描述信息"

3.Git的常用命令

除了上述两个命令,还有一个git log命令,它可以查看每次文件的提交信息

git log --pretty=oneline

Git 追踪管理的其实是修改操作,而不是文件

git status

这个命令用于查看Git仓库当前状态,他会列出从上次提交后暂存区中修改的文件

git diff [文件]

这个命令用于查看暂存区和工作区之间的文件差异

4.版本回退

对于文件,我们可能会修改很多次.如果对当前修改的效果不满意,就可以使用版本回退,回退到以前的版本,回到之前的版本后,还可以回到最新版本

命令如下:

git reset [--soft / --mixed / --hard] [HEAD]

版本回退本质上回退的是版本库的内容

如果想要工作区和暂存区的内容也会退,执行git reset可以选择不同的选项

选项工作区暂存区版本库
–soft不回退不回退回退
–mixed(默认选项)不回退回退回退
–hard回退回退回退

注: --hard选项要慎用!

这个 HEAD 就是想要回退的版本

可以使用git log --pretty=oneline命令进行查看

在这里插入图片描述
我这里提交了两次,就会显示两次的提交信息

前面一串数字+英文的组合 是版本,而后面的add1和add2是文件的描述信息

如果回退后想要回到会退前的版本,也可以使用此命令回到最新的版本.因为打印过版本信息, 把 HEAD 改成最新的即可

5.撤销修改

撤销修改操作分为三种情况: 1. 只撤销工作区文件修改的操作 2. 撤销工作区和暂存区文件修改的操作 3. 撤销在工作区,暂存区和版本库都修改的操作

如果只撤销工作区文件修改的操作

  1. 手动进行撤销,不推荐,容易出错
  2. 使用 git checkout 命令,如下:
git checkout -- [文件]

如果撤销工作区和暂存区文件修改的操作,可以使用版本回退命令

git reset --hard [HEAD]

--hard 选项可以回退工作区,暂存区和版本库的内容

如果使用--mixed选项也是可以的,这个选项可以回退暂存区和版本库的内容.此时就只剩下工作区的内容需要撤销修改了. 就是上述如果只撤销工作区文件修改的操作的场景.

如果撤销在工作区,暂存区和版本库都修改的操作

  • 注意这里有个前提条件,是在commit操作之后,没有进行push操作将文件上推送到远程仓库

撤销的主要目的,也是为了不影响远程仓库中的代码

有了上述的前提条件后,可以使用版本回退进行撤销修改

git reset --hard [HEAD]
# HEAD 代表当前版本
# HEAD^ 表示上一个版本

6.删除文件

这里的删除文件指的是删除版本库中的文件

大致可以分为三步:

  1. 首先使用rm命令把工作区中的文件进行删除
  2. 使用git add命令将刚才删除的文件提交到暂存库
  3. 使用git commit命令提交到版本库即可

可以使用git rm命令简化操作,直接将文件从暂存区中删除,后续直接进行git commit命令即可

7.总结

以上就是一些Git的常用命令和使用场景, 要根据当前的场景和需求使用合适的命令进行执行

在这里插入图片描述

相关文章:

Git的常用命令以及使用场景

文章目录 1.前言2.工作区,暂存区,版本库简介3.Git的常用命令4.版本回退5.撤销修改6.删除文件7.总结 1.前言 在学习Git命令之前,需要先了解工作区,暂存区和版本库这三个概念 2.工作区,暂存区,版本库简介 在使用Git进行版本控制时,有三个重要的概念:工作…...

tcp keepalive

tcp keepalive用于检查两者之间的链路是否正常,或防止链路断开。 一旦建立了TCP连接,该连接被定义为有效,直到一方关闭它。一旦连接进入连接状态,它将无限期地保持连接状态。但实际上,这种联系不会无限期地持续下去。如…...

PP-Matting: AI高精度图像前景Matting,让抠图轻而易举

分割和Matting的一个重要区别是:分割返回的是像素分类标签,其结果是整型数据;而Matting返回的是属于前景或背景的概率P,从而在前景与背景交互区域产生渐变的效果,使得抠图更加自然。Matting分割模型训练完成后,对于原始图像每个位置上的像素,都将生成一个表示其前景透明…...

VUE3-01

1.选项式和组合式 选项式API&#xff1a;按照作用组织代码 组合式API&#xff1a;按照功能组织代码 2.<script setup> <template><div class"about"><h1>{{name}}</h1><button click"sayHello">测试</button>…...

分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(二)

说明&#xff1a;如果实现了docker部署mysql并完成主从复制的话再继续&#xff0c;本篇文章主要说明springboot配置实现Shardingjdbc进行读写分离操作。 如果没实现docker部署mysql实现主从架构的话点击我 Shardingjdbc配置介绍&#xff08;版本&#xff1a;5.3.2&#xff09;…...

Python 进阶(四):日期和时间(time、datetime、calendar 模块)

❤️ 博客主页&#xff1a;水滴技术 &#x1f338; 订阅专栏&#xff1a;Python 入门核心技术 &#x1f680; 支持水滴&#xff1a;点赞&#x1f44d; 收藏⭐ 留言&#x1f4ac; 文章目录 1. time模块1.1 获取当前时间1.2 时间休眠1.3 格式化时间 2. datetime模块2.1 获取当前…...

Transformer背景介绍

目录 Transformer的诞生Transformer的优势Transformer的市场 Transformer的诞生 论文地址 Transformer的优势 Transformer的市场...

深入理解BeanDefinition和Spring Beans

深入理解BeanDefinition和Spring Beans 引言 在Spring框架中&#xff0c;BeanDefinition和Spring Beans是非常重要的概念。BeanDefinition定义了Spring Bean的元数据&#xff0c;而Spring Beans是应用程序中的对象实例。理解BeanDefinition和Spring Beans的概念和使用方法对于…...

实验六 调度器-实验部分

目录 一、知识点 1.进程调度器设计的目标 1.1.进程的生命周期 1.2.用户进程创建与内核进程创建 1.3.进程调度器的设计目标 2.ucore 调度器框架 2.1.调度初始化 2.2.调度过程 2.2.1.调度整体流程 2.2.2.设计考虑要点 2.2.3.数据结构 2.2.4.调度框架应与调度算法无关…...

基于飞桨paddle波士顿房价预测练习模型测试代码

基于飞桨paddle波士顿房价预测练习模型测试代码 导入基础库 #paddle&#xff1a;飞桨的主库&#xff0c;paddle 根目录下保留了常用API的别名&#xff0c;当前包括&#xff1a;paddle.tensor、paddle.framework、paddle.device目录下的所有API&#xff1b; import paddle #Lin…...

只会“点点点”,凭什么让开发看的起你?

众所周知&#xff0c;如今无论是大厂还是中小厂&#xff0c;自动化测试基本是标配了&#xff0c;毕竟像双 11、618 这种活动中庞大繁杂的系统&#xff0c;以及多端发布、多版本、机型发布等需求&#xff0c;但只会“写一些自动化脚本”很难胜任。这一点在招聘要求中就能看出来。…...

35.图片幻灯片

图片幻灯片 html部分 <div class"carousel"><div class"image-container"><img src"./static/20180529205331_yhGyf.jpeg" alt"" srcset""><img src"./static/20190214214253_hsjqw.webp"…...

CentOS7系统Nvidia Docker容器基于TensorFlow2.12测试GPU

CentOS7系统Nvidia Docker容器基于TensorFlow1.15测试GPU 参考我的另一篇博客 1. 安装NVIDIA-Docker的Tensorflow2.12.0版本 1. 版本依赖对应关系&#xff1a;从源代码构建 | TensorFlow GPU 版本Python 版本编译器构建工具cuDNNCUDAtensorflow-2.6.03.6-3.9GCC 7.3.1Ba…...

Go 下载安装教程

1. 下载地址&#xff1a;The Go Programming Language (google.cn) 2. 下载安装包 3. 安装 &#xff08;1&#xff09;下一步 &#xff08;2&#xff09;同意 &#xff08;3&#xff09;修改安装路径&#xff0c;如果不修改&#xff0c;直接下一步 更改后&#xff0c;点击下一…...

InnoDB数据存储结构

一. InnoDB的数据存储结构&#xff1a;页 索引是在存储引擎中实现的&#xff0c;MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中存放的格式一般不同的&#xff0c;甚至有的存储引擎比如Memory都不用磁盘来存储数据&#xff0c;这里讲讲InooDB存储引擎…...

基于ts的浏览器缓存工具封装(含源码)

cache.ts缓存工具 浏览器缓存工具封装实现使用方法示例代码 浏览器缓存工具封装 在前端开发中&#xff0c;经常会遇到需要缓存数据的情况&#xff0c;例如保存用户的登录状态、缓存部分页面数据等 但有时候需要缓存一些复杂的对象&#xff0c;例如用户信息对象、设置配置等。…...

GIT涵盖工作中用的相关指令

git安装一直默认点击下去&#xff0c;安装完成&#xff0c;右键会看见gitBash git --version 查看git安装的版本 使用git前配置git git config --global user.name 提交人姓名 git config --global user.email 提交人邮箱 git config --list 查看git配置信息 使用git中配置…...

【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码(一)

系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码&#xff08;一&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存&#xff08;二&#xff09; 【如何训练一个中英翻译模型】LSTM机器翻译模型部署&#xff08;三&#xff09; 【如何训…...

[JAVAee]文件操作-IO

本文章讲述了通过java对文件进行IO操作 IO:input/output,输入/输出. 建议配合文章末尾实例食用 目录 文件 文件的管理 文件的路径 文件的分类 文件系统的操作 File类的构造方法 File的常用方法 文件内容的读写 FileInputStream读取文件 构造方法 常用方法 Scan…...

【数据集】3小时尺度降水数据集-MSWEPV2

1 MSWEP V2 precipitation product 官网-MSWEP V2降水产品 参考...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...