【Git】常用命令详解(循序渐进,逐步分析)

news2024/11/23 4:39:33

目录

一、Git常用命令

1.1、设置用户签名

1.2、初始化本地库

1.3查看本地库状态

1.3、添加文件到暂存区

1.4、将暂存区文件添加文件到本地库

1.5、查看历史版本(提交历史记录)

1.6、修改文件

1.7、版本穿梭


一、Git常用命令

1.1、设置用户签名

git config --global user.name "用户名"
git config --global user.email 邮箱

配置权限:

1. local(优先级最高):默认,只影响本地;

2. global (优先级中等) :影响当前用户的git仓库;

3. system (优先级最低) :印象到全系统的git仓库;

注意:首次下载git一定要进行设置,否则后续提交代码会出错;这里的邮箱不一定需要真实邮箱,可以是一个虚拟邮箱;

执行效果:

通过如下路径

找到如下文件打开,便可以看到刚刚的配置效果; 


1.2、初始化本地库

git init 

使用方法:

 


1.3查看本地库状态

先来介绍以下git中的两个状态:

1.内容状态:表示内容文件的改变,有三个区域,分别是 工作区、暂存区、提交区;

2.文件状态:有两个,已跟踪和未跟踪;

关系如下:

如何查看本地库状态?命令如下: 

git status

使用效果

解释:

On branch master:表示当前在master(默认)这个分支下;

No commits yet:表示当前还没有提交过任何东西,是一个空的库;

nothing to commit :表示没有东西需要提交(该目录下没有可提交的文件);如果通过vim创建了一个test.txt文件,再查看本地库状态,就如下图

那如何把本地文件添加到暂存区呢?往下看~


1.3、添加文件到暂存区

//添加文件内容到暂存区(同时文件被跟踪)
git add 文件名 + 后缀
//添加所有文件
git add .

执行效果:(将文件test.txt添加的到暂存区)

         这里有一个警告是怎么回事呢?实际上就是我们test文件中的内容换行符是用的CRLF,而linux下需要使用LF;实际上,这个警告不用担心,因为他会帮你自动转换的;

接下来使用git status 查看状态就会发现:(如下图)

         这里就表示test.txt放入暂存区中了;当然,如果你想把他从暂存区删除掉(只是删掉了暂存区的,工作区的还是存在的),上一行命令也提示你了,可以使用"git rm --cached <file>..."来删除;

添加的暂存区,接下来需要干什么呢?往下走~


1.4、将暂存区文件添加文件到本地库

通过这个操作,就可以把代码提交到本地库,形成自己的历史版本;

//从暂存区中提交
git -commit -m 'first commit' 暂存区中的文件名+后缀
//扩展:从工作区提交
git commit -a -m 'full commit' 工作区中的文件名+后缀

         'first commit' 这里的日志可以根据自己情况所写;

执行效果如下:

        蓝框里的 6fc5174 就表示当前提交的版本号(精简版,后文有介绍完整版);

这时候本地库状态是什么样的呢?如下执行效果

 nothing to commit, working tree clean :这里就表示,没有东西可以提交了,工作已经清理完成;

1.5、查看历史版本(提交历史记录)

//查看历史提交版本信息
git reflog
//查看历史提交版本的详细信息
git log

执行效果如下:

        这里的first commit是当时你提交时候所写的日志信息~ 

        (HEAD  ->  master)就表示指向的当前版本;


1.6、修改文件

如何修改已经提交了的文件呢?

这里作者已经修改过的文件,如下

通过git status查看本地库状态如下

        这里就会提示你,文件已经是被修改过的了,并且又放到了工作区(标红了)

 通过git add 和 git commit提交文件,最后查看本地库信息,就发现已经清理干净了~

通过git reflog查看提交版本信息就可以观察到,上面两次提交的结果,如下:


1.7、版本穿梭

先来简单了解一下什么是版本穿梭~

简单来讲就是当前提交版本,你觉得写的并不好(还没有上一个提交版本写的好),就可以通过版本穿梭,穿梭到上个版本!

//git reset   将当前分支回退到历史某个版本
git reset --mixed 版本号 //(默认)
git reset --soft 版本号
git reset --hard 版本号 

那就演示一下,将刚刚修改的test,txt的第二个版本回退到第一个版本,如下~

 查看提交日志,如下

(HEAD  ->  master)就表示当前版本指向;

底层原理:

        git 控制版本信息,并不是通过复制粘贴内容创造副本实现的,而是在内存中记录了很多版本信息,最后通过调用指针来指向不同的版本;

注意:

        版本穿梭不光可以穿梭到以前的版本,还可以穿梭到以后的版本~


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

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

相关文章

前端浏览器支持的JS文件操作技术介绍

前端浏览器支持的JS文件操作技术介绍 本文将介绍前端浏览器支持的JS文件操作技术。通过使用在 HTML5 中加入到 DOM 的 File API&#xff0c;使在 web 内容中让用户选择本地文件然后读取这些文件的内容成为可能。用户可以通过 HTML 中的 <input type"file"> 元…

Python动态可视化Plotly

✨ 介绍 Plotly Express ✨&#xff1a; 提示&#xff1a;这里可以添加学习目标 Plotly Express是一个新的高级 Python 可视化库&#xff1a;它是Plotly.py的包装器&#xff0c;为复杂图表提供了简单的语法。受 Seaborn 和 ggplot2 的启发&#xff0c;它专门设计为具有简洁、…

【Meetup 明天见】OpenMLDB + MaxCompute:集成打通云上生态,高效构建 AI 应用

明天上午10&#xff1a;00-12:00&#xff0c;OpenMLDB 第八期 Meetup 将全程线上直播&#xff0c;欢迎关注。 活动背景 数据的爆发式增长为 AI 应用的繁荣提供了坚实的基础&#xff0c;而云服务作为新一代快速整合、高效计算的服务模式&#xff0c;为大数据的分析处理和 AI 智…

MySQL中SQL的执行流程

1 查询缓存 Server 如果在查询缓存中发现了这条 SQL 语句&#xff0c;就会直接将结果返回给客户端&#xff1b;如果没有&#xff0c;就进入到解析器阶段。需要说明的是&#xff0c;因为查询缓存往往效率不高&#xff0c;所以在 MySQL8.0 之后就抛弃了这个功能。 大多数情况查询…

Reconstructing Capsule Networks for Zero-shot Intent Classification

摘要 intent classification 意图分类。dialogue systems 对话系统已经存在的系统并没有能力去处理快速增长的意图。zero-shot intent classifcation&#xff1a; 零样本意图分类。 Nevertheless 不过。 incipient stage 初期阶段 今年来提出的IntentCapsNet two unaddresse…

基于java+springboot+mybatis+vue+mysql的智慧外贸平台

项目介绍 智慧外贸平台能够通过互联网得到广泛的、全面的宣传&#xff0c;让尽可能多的用户了解和熟知智慧外贸平台的便捷高效&#xff0c;不仅为群众提供了服务&#xff0c;而且也推广了自己&#xff0c;让更多的群众了解自己。对于智慧外贸而言&#xff0c;若拥有自己的系统…

播放量超1500w,谁的恰饭两次都在B站成顶流?

- 导语 女性消费一直以来都是消费市场的主力&#xff0c;“她经济”市场应运而生。有关数据显示&#xff0c;我国拥有近4亿消费者为女性&#xff0c;在如此庞大购买力的驱动下&#xff0c;截至目前统计我国共有492.9万家“她经济”相关企业&#xff0c;其中有3/4的是近5年内成…

【Spring】——16、使用@Autowired、@Qualifier、@Primary这三大注解自动装配组件?

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…

【Redis】Redis事务工作原理解析与分布式事务实战(Redis专栏启动)

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1…

8.Django大型电商项目之商品添加分页

1.添加分页 添加分页在Django中使用自带分页器paginator 1.1 配置setting settings中配置分页数量 # 每页显示记录条数 PER_PAGE_NUMBER 81.2 配置views 完成分页栏使用paginator创建对象&#xff0c;返回选中条数 from django.shortcuts import render from goodsapp.mo…

桶排序算法

题目 代码1&#xff1a; #include <stdio.h> int main() {int sz0;scanf("%d",&sz);int arr[sz];//输入int i0;for (i0;i<sz;i){scanf("%d",&arr[i]);}//删除多余相同元素int j0;int k0;for (i0;i<sz;i){if (i0){arr[j]arr[i];}else{…

MyBatis批量保存(Oracle)MyBatis批量插入时,组装SQL过长会有问题,一定要根据批量插入数据量进行切割,再批次提交保存!!!

MyBatis批量保存&#xff08;Oracle&#xff09; oracle 批量插入与mysql 的批量插入的方式不同 insert into tablename()values(),(),(); ---这个是mysql 的批量插入形式 insert all into tablename() values() into tablename() values() -------这个是Oracle批量插入形式 你…

大数据测试 - 数仓测试

前言 对于数据仓库的测试来说底层的系统会有很多有自建的集群使用 spark 或者 flink 测试&#xff0c;也有很多直接使用云厂商的产品比如 datworks 等等&#xff0c;再这里我想分享下抛开环境&#xff0c;只对数据仓库测试的一些小心得。 数仓分层设计 标准数仓分为 ODS,DWD…

java计算机毕业设计基于安卓Android的微整形美容app

项目介绍 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设…

前缀和问题

前缀和 一维二维 ac795. 前缀和【一维】 输入一个长度为 nn 的整数序列。 接下来再输入 mm 个询问&#xff0c;每个询问输入一对 l,rl,r。 对于每个询问&#xff0c;输出原序列中从第 ll 个数到第 rr 个数的和。 输入格式 第一行包含两个整数 nn 和 mm。 第二行包含 nn…

基于android的资源文件管理器

软 件 学 院 毕业实训报告 课题名称&#xff1a; android资源管理器 专 业&#xff1a; 软件设计&#xff08;游戏开发方向&#xff09; 班 级&#xff1a; 学 号&#xff1a; 学生姓名&#xff1a; 指导教师&#xff1a; 年 月 日 摘 要 相信大家对Android的发展历史…

Nacos-配置中心,特性,启动,集成mysql,快速入门

Nacos - 配置管理 目录Nacos - 配置管理1. 什么是配置中心1.1 什么是配置1.2 什么是配置中心2 Nacos****简介2.1 主流配置中心对比2.2 Nacos****简介2.3 Nacos****特性3 Nacos 快速入3.1 安装 Nacos Server3.1.1 预备环境准备3.1.2 下载源码或者安装包3.1.3 启动服务器3.1.4 OP…

HTML班级网页设计 基于HTML+CSS+JS制作我们的班级网页(web前端学生网页设计作品)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

计算机毕业设计---java+springboot宠物商城系统

一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot Maven mybatis Vue 等等组成&#xff0c;B/…