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

Git介绍和基础命令解析

Git基本操作指令

工作区和暂存区

Git管理的文件分为:工作区(本地的文件夹),版本库(.git文件夹),版本库又分为暂存区stage和暂存区分支master(仓库)

工作区>>>>暂存区>>>>仓库

git add把文件从工作区>>>>暂存区,git commit把文件从暂存区>>>>仓库

git diff查看工作区和暂存区差异

git diff --cached查看暂存区和仓库差异

git diff HEAD 查看工作区和仓库的差异

git add的反向命令git checkout,撤销工作区修改,即把暂存区最新版本转移到工作区

git commit的反向命令git reset HEAD,就是把仓库最新版本转移到暂存区

管理修改

Git跟踪并管理的是修改,而非文件

现在有一个文件a.txt

你修改了a.txt,并使用git add a.txt把它存进了暂存区

此时你又对a.txt进行了修改

然后使用git commit进行了提交

Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。

提交后,用git diff HEAD -- a.txt命令可以查看工作区和版本库里面最新版本的区别:

撤销修改

丢弃工作区文件的修改

如果你在本地工作区修改了某个文件,但是你突然不想要这些修改了,你可以通过git checkout -- file命令来撤销修改,他会撤销你的所有修改

存在两种情况,首先假设你要撤销的是a.txt

  • 如果a.txt在你修改前已经从工作区被添加到暂存区了,此时你修改完了以后,要进行撤销,那就会被撤销回到暂存区的状态
  • 如果a.txt没有被添加到暂存区,那就会被回退到版本库的最新状态

总的来说,就是会回退到最近的一次git commitgit add时的状态

丢弃暂存区文件的修改

如果你改了a.txt文件的内容,并git add进暂存区了,此时你想把暂存区的修改撤销掉(unstage),可以用git reset HEAD <file>

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

$ git status
On branch master
Changes to be committed:(use "git reset HEAD <file>..." to unstage)modified:   a.txt$ git reset HEAD a.txt
Unstaged changes after reset:
M	a.txt$ git status
On branch master
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified:   a.txt$ git checkout -- a.txt$ git status
On branch master
nothing to commit, working tree clean

相当于利用两次撤销,将a.txt的内容变成了最新一次commit进仓库的状态

丢弃版本库的修改

如果你不小心把不想修改的内容提交到了仓库,那你就只能使用版本回退了,回退到上一个版本

git log #可以显示从最近到最远的提交日志
git log --pretty=oneline #可以将每条简化为一行

commit id即版本号,用SHA哈希出来的一个值,用十六进制表示

Git中用HEAD表示当前版本,上一个版本是HEAD^,上上个版本是HEAD^^

所以如果想回退到上一个版本

git reset --hard HEAD^
#或者是
git reset --hard xxxxx#后面写版本号,取前几位就可以,git会自己找

此时,git log看到的版本也是会回到上一个版本所能看见的

现在的操作相当于“回到过去”,如果你想回到未来,但是你又忘了之前的版本号是多少,你可以用

$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file

进入git log或者git reflog后,按q可以退出

删除文件

rm命令仅仅是删除本地工作区的文件,相当于一次对文件的修改,如果想同步给版本库的文件,就想要git addgit commit

git rm命令等同于rm + git add,此时只想要git commit即可完成版本库的同步

git rm -f,删除工作区和暂存区文件,并且将这次删除放入暂存区,主要是解决文件被add进暂存区,但是没有commit到仓库,导致暂存区和仓库存在不同,此时直接使用git rm就无法执行,可以添加-f的参数,强制删除

git rm --cached , 删除暂存区文件,但保留工作区的文件,并且将这次删除放入暂存区,此时使用git status

$ git status
On branch master
Changes to be committed:(use "git reset HEAD <file>..." to unstage)deleted:    test.txtUntracked files:(use "git add <file>..." to include in what will be committed)test.txt

git commmit以后仓库内的就被删除了,但是本地工作区还是保存的,而且不会被追踪

相关文章:

Git介绍和基础命令解析

Git基本操作指令 工作区和暂存区 Git管理的文件分为&#xff1a;工作区(本地的文件夹)&#xff0c;版本库(.git文件夹)&#xff0c;版本库又分为暂存区stage和暂存区分支master(仓库) 工作区>>>>暂存区>>>>仓库 git add把文件从工作区>>>…...

力扣hot100 和为 K 的子数组 前缀和

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f37b; AC code class Solution {public int subarraySum(int[] nums, int k){int ans 0;int n nums.length;int[] s new int[n 1];// 前缀和s[0] 0;s[1] nums[0];for (int i 2; i < n; i)s[i] s[i - 1] nums[i - 1…...

6.12找树左下角的值(LC513-M)

算法&#xff1a; 这道题适合用迭代法&#xff0c;层序遍历&#xff1a;按层遍历&#xff0c;每次把每层最左边的值保存、更新到result里面。 看看Java怎么实现层序遍历的&#xff08;用队列&#xff09;&#xff1a; /*** Definition for a binary tree node.* public clas…...

【精选】框架初探篇之——MyBatis的CRUD及配置文件

MyBatis增删改查 MyBatis新增 新增用户 持久层接口添加方法 void add(User user);映射文件添加标签 <insert id"add" parameterType"com.mybatis.pojo.User">insert into user(username,sex,address) values(# {username},# {sex},# {address}) <…...

ES8语法async与await

async和await两种语法结合可以让异步代码像同步代码一样。 一、async函数 async函数的返回值为Promise对象promise对象的结果由async函数执行的返回值决定 async function fn() {// 返回一个字符串return 字符串&#xff1b;// 返回的结果不是一个Promise类型的对象&#xf…...

c#处理SQLSERVER 中image数量类型为空

项目场景&#xff1a; DataRow dataRow dataTable.Rows[i]; var pxpicture dataRow ["pxImage"];if (pxpicture!null){byte[] pic (byte[])pxpicture;acs.Add("pxpicture", Convert.ToBase64String(pic));}问题描述 代码执行出现错误&#xff1a; 无…...

五子棋游戏

import pygame #导入pygame模块 pygame.init()#初始化 screen pygame.display.set_mode((750,750))#设置游戏屏幕大小 running True#建立一个事件 while running:#事件运行for event in pygame.event.get():if event.type pygame.QUIT:#当点击事件后退出running False #事…...

vue+SpringBoot的图片上传

前端VUE的代码实现 直接粘贴过来element-UI的组件实现 <el-uploadclass"avatar-uploader"action"/uploadAvatar" //这个action的值是服务端的路径&#xff0c;其他不用改:show-file-list"false":on-success"handleAvatarSuccess"…...

FFmepg 核心开发库及重要数据结构与API

文章目录 前言一、FFmpeg 核心开发库二、FFmpeg 重要数据结构与 API1、简介2、FFmpeg 解码流程①、FFmpeg2.x 解码流程②、FFmpeg4.x 解码流程 3、FFMpeg 中比较重要的函数以及数据结构①、数据结构②、初始化函数③、音视频解码函数④、文件操作⑤、其他函数 三、FFmpeg 流程1…...

训练 CNN 对 CIFAR-10 数据中的图像进行分类

1. 加载 CIFAR-10 数据库 import keras from keras.datasets import cifar10# 加载预先处理的训练数据和测试数据 (x_train, y_train), (x_test, y_test) cifar10.load_data() 2. 可视化前 24 个训练图像 import numpy as np import matplotlib.pyplot as plt %matplotlib …...

香港科技大学广州|智能制造学域博士招生宣讲会—天津大学专场

时间&#xff1a;2023年12月07日&#xff08;星期四&#xff09;15:30 地点&#xff1a;天津大学卫津路校区26楼B112 报名链接&#xff1a;https://www.wjx.top/vm/mmukLPC.aspx# 宣讲嘉宾&#xff1a; 汤凯教授 学域主任 https://facultyprofiles.hkust-gz.edu.cn/faculty-p…...

滑动窗口练习(二)— 子数组中满足max -min <= sum的个数

题目 给定一个整型数组arr&#xff0c;和一个整数num 某个arr中的子数组sub&#xff0c;如果想达标&#xff0c;必须满足&#xff1a; sub中最大值 – sub中最小值 < num&#xff0c; 返回arr中达标子数组的数量 暴力对数器 暴力对数器方法主要是用来和另一个方法互相校验正…...

用xlwings新建一个excel并同时生成多个sheet

新建一个excel并同时生成多个sheet&#xff0c;要实现如下效果&#xff1a; 一般要使用数据透视表来快速实现。 今天记录用xlwings新建一个excel并同时生成多个sheet。 import xlwings as xw # 打开excel,参数visible表示处理过程是否可视,add_book表示是否打开新的Excel程序…...

诺威信,浪潮云,微众区块链

目录 诺威信B隐私计算平台 浪潮云=星火连-澳优码 HyperChain 产品介绍 CA认证即电子认证服务...

Redux在React中的使用

Redux在React中的使用 1.构建方式 采用reduxjs/toolkitreact-redux的方式 安装方式 npm install reduxjs/toolkit react-redux2.使用 ①创建目录 创建store文件夹&#xff0c;然后创建index和对应的模块&#xff0c;如上图所示 ②编写counterStore.js 文章以counterStore…...

Go 数字类型

一、数字类型 1、Golang 数据类型介绍 Go 语言中数据类型分为&#xff1a;基本数据类型和复合数据类型基本数据类型有&#xff1a; 整型、浮点型、布尔型、字符串复合数据类型有&#xff1a; 数组、切片、结构体、函数、map、通道&#xff08;channel&#xff09;、接口 2、…...

时间序列预测 — Informer实现多变量负荷预测(PyTorch)

目录 1 实验数据集 2 如何运行自己的数据集 3 报错分析 1 实验数据集 实验数据集采用数据集4&#xff1a;2016年电工数学建模竞赛负荷预测数据集&#xff08;下载链接&#xff09;&#xff0c;数据集包含日期、最高温度℃ 、最低温度℃、平均温度℃ 、相对湿度(平均) 、降雨…...

2023年金融信创行业研究报告

第一章 行业概况 1.1 定义 金融信创是指在金融行业中应用的信息技术&#xff0c;特别是那些涉及到金融IT基础设施、基础软件、应用软件和信息安全等方面的技术和产品。这一概念源于更广泛的“信创 (信息技术应用创新)”&#xff0c;即通过中国国产信息技术替换海外信息技术&a…...

51单片机按键控制LED灯亮灭的N个玩法

51单片机按键控制LED灯亮灭的N个玩法 1.概述 这篇文章介绍按键的使用&#xff0c;以及通过控制LED灯的小实验&#xff0c;发现按键中存在的问题&#xff0c;然后思考并解决这些问题。达到熟练使用按键控制元器件。 2.搭建硬件环境 1.硬件准备 名称型号数量单片机STC12C205…...

推荐6款本周 yyds 的开源项目

&#x1f525;&#x1f525;&#x1f525;本周GitHub项目圈选: 主要包含 链接管理、视频总结、有道音色情感合成、中文文本格式校正、GPT爬虫、深度学习推理 等热点项目。 1、Dub 一个开源的链接管理工具&#xff0c;可自定义域名将繁杂的长链接生成短链接&#xff0c;便于保…...

如何高效解密网易云音乐NCM文件?ncmdump工具全指南

如何高效解密网易云音乐NCM文件&#xff1f;ncmdump工具全指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否遇到过下载的网易云音乐NCM文件无法在其他播放器中打开的问题&#xff1f;ncmdump作为一款专业的NCM格式解密工具…...

黑马点评项目扩展:为本地生活平台集成AI人脸生成会员头像功能

黑马点评项目扩展&#xff1a;为本地生活平台集成AI人脸生成会员头像功能 不知道你有没有发现&#xff0c;现在很多本地生活类App&#xff0c;比如我们熟悉的“黑马点评”&#xff0c;用户头像区总是千篇一律。要么是默认的灰色头像&#xff0c;要么就是随手拍的生活照&#x…...

TurboDiffusion保姆级教程:基于Wan2.1/Wan2.2的AI视频生成快速上手

TurboDiffusion保姆级教程&#xff1a;基于Wan2.1/Wan2.2的AI视频生成快速上手 1. 引言 1.1 为什么选择TurboDiffusion 想象一下&#xff0c;你只需要输入一段文字描述&#xff0c;就能在几秒钟内生成一段高质量的视频。这不是科幻电影里的场景&#xff0c;而是TurboDiffusi…...

OpenClaw异常处理:Qwen3-4B模型的任务失败恢复机制

OpenClaw异常处理&#xff1a;Qwen3-4B模型的任务失败恢复机制 1. 为什么需要关注OpenClaw的异常处理&#xff1f; 上周我让OpenClaw帮我整理一个月的会议录音转文字稿&#xff0c;结果第二天发现它卡在第七个文件就停止了。这种半途而废的情况在使用本地大模型时特别常见——…...

OpenClaw技能开发入门:为Phi-3-vision-128k-instruct编写图片转Markdown插件

OpenClaw技能开发入门&#xff1a;为Phi-3-vision-128k-instruct编写图片转Markdown插件 1. 为什么需要这个技能 上周整理技术文档时&#xff0c;我遇到了一个典型痛点&#xff1a;需要将十几张包含代码片段的截图转换成可编辑的Markdown格式。手动转录不仅耗时&#xff0c;还…...

nlp_structbert_sentence-similarity_chinese-large 处理长文本技巧:分段与聚合策略

nlp_structbert_sentence-similarity_chinese-large 处理长文本技巧&#xff1a;分段与聚合策略 你是不是遇到过这样的问题&#xff1f;手头有一篇几十页的技术文档&#xff0c;或者一篇上万字的学术论文&#xff0c;想用 nlp_structbert_sentence-similarity_chinese-large 这…...

pyside2 打包发布exe文件

1、pip install pyinstaller2、pyinstaller pysidedemo1.py -D...

【人工智能基础-机器学习】- 线性归回知识点(有个人理解)

机器学习&#xff1a;线性回归 一、线性回归基础 1.1 数据准备 将x0置为1&#xff0c;与xn组合得到nn的矩阵 1.2 理论基础 正态分布&#xff1a; 基于中心极限定理&#xff0c;误差&#xff08;预测值-实际值&#xff09;服从正态分布 最大似然估计&#xff08;MLE&#xff09;…...

STM32启动模式详解与实战指南

1. STM32启动过程概述作为一名嵌入式开发工程师&#xff0c;理解STM32的启动过程是基本功。很多初学者在使用STM32时&#xff0c;往往只关注main函数中的代码&#xff0c;却忽略了芯片上电后到执行main函数之前发生了什么。实际上&#xff0c;从按下复位键到程序开始运行&#…...

哈夫曼编码实战:从电文压缩到代码实现(附完整Python示例)

哈夫曼编码实战&#xff1a;从电文压缩到代码实现&#xff08;附完整Python示例&#xff09; 在数据存储和传输领域&#xff0c;压缩算法始终扮演着关键角色。想象一下&#xff0c;当你需要处理数百万条日志记录&#xff0c;或是传输高分辨率医学影像时&#xff0c;未经压缩的原…...