Git 仓库内容操作

Git 仓库内容操作 | CoderMast编程桅杆Git 仓库内容操作 添加文件到暂存区 使用如下指令将工作区的文件添加到暂存区,告诉 Git 在下次 commit 时哪些文件做出了修改。 commit 指令详看后续 添加一个或多个文件到暂存区: 添加指定目录到暂存区 添加当前目录下的所有文件到暂存区 查看仓库状态 在使用添加指令向暂存区添加文件后,可以使用如下指令来查看仓库当前状态,可以查看在上次提...icon-default.png?t=N7T8https://www.codermast.com/dev-tools/git/git-content-operations.html

添加文件到暂存区

使用如下指令将工作区的文件添加到暂存区,告诉 Git 在下次 commit 时哪些文件做出了修改。

commit 指令详看后续

  • 添加一个或多个文件到暂存区:

git add [file1] [file2] ...
  • 添加指定目录到暂存区
git add [dir]
  • 添加当前目录下的所有文件到暂存区
git add .

查看仓库状态

在使用添加指令向暂存区添加文件后,可以使用如下指令来查看仓库当前状态,可以查看在上次提交之后是否对文件有修改。

git status

该命令显示如下信息:

  • 当前分支的名称。
  • 当前分支与远程分支的关系(例如,是否是最新的)。
  • 未暂存的修改:显示已修改但尚未使用 git add 添加到暂存区的文件列表。
  • 未跟踪的文件:显示尚未纳入版本控制的新文件列表。

根据该指令通常可以判断当前工作目录中的文件状态,并采取适当的操作。

可以加上 -s 参数来获取简短的输出信息

git status -s

比较文件的不同

当工作区的内容提交到暂存区后,对工作区文件做出了修改,这时我们如果想对比具体修改了哪些部分,可以使用如下指令

  • 查看文件 file 工作区和暂存区的差别
git diff [file]
  • 显示暂存区和上一次提交 commit 的差别
# 两种写法均可
git diff --cached [file]
git diff --staged [file]
  • 显示两次提交之间的差异
git diff [first-branch]...[second-branch]

提交暂存区到本地仓库

前面使用 git add 指令将工作区文件添加到暂存区,但并没有实质的将文件添加到本地仓库,可以使用如下指令将文件从暂存区添加到本地仓库。

  • 提交暂存区中所有文件到本地仓库
git commit -m [message]

其中 message 是本次提交的一些备注信息。

  • 提交暂存区的指定文件到本地仓库
git commit [file1] [file2] ... -m [-a] [message] 

这里如果使用了 -a 参数,就代表直接将工作区文件提交到本地仓库。

回退版本

常常在项目版本控制的过程中,我们无意的提交了一些还尚未完成的版本,这时就需要使用到版本回退,使用如下指令可以指定退回某一次提交的版本,语法如下所示

git reset [--soft | --mixed | --hard] [HEAD]
  • --mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
`git reset [HEAD]`
  • --soft 参数用于回退到某个版本:
git reset --soft HEAD
  • --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
git reset --hard HEAD

警告

谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。

HEAD 说明

  • HEAD 表示当前版本

  • HEAD^ 上一个版本

  • HEAD^^ 上上一个版本

  • HEAD^^^ 上上上一个版本

  • HEAD~0 表示当前版本

  • HEAD~1 上一个版本

  • HEAD^2 上上一个版本

  • HEAD^3 上上上一个版本

删除暂存区和工作区文件

git rm 命令用于删除文件。

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。

  • 将文件从暂存区和工作区中删除
git rm [-f] <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。

  • 仅将文件从暂存区删除,而保留工作区
git rm --cached <file>

该指令把文件从暂存区域移除,但仍然保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

  • 递归删除【与Linux中类似】

可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件

git rm –r [dir]

该语句会删除 dir 目录下的所有文件和子目录。

移动或重命名工作区文件

  • 移动或重命名一个文件、目录或软连接
git mv [file] [newfile] 
  • 如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数:
git mv -f [file] [newfile]

恢复或撤销文件的更改

该命令作用包括还原文件到最新提交的状态、丢弃未暂存的更改、丢弃已暂存但未提交的更改等。

  • 还原文件到最新提交的状态
git restore <file>

该命令可以将指定文件 <file> 恢复到最新的提交状态,丢弃所有未提交的更改

  • 还原文件到暂存区的状态

如果你已经使用 git add 将文件添加到暂存区,但希望撤销这些更改,可以使用这个命令:

git restore --staged <file>

以上命令将文件 <file> 恢复到暂存区的状态,但不影响工作目录中的文件。

  • 还原全部更改

以下命令将还原所有未提交的更改,包括工作目录和暂存区的更改:

git restore .

使用这个命令要谨慎,因为它会清除所有未提交的修改。

  • 还原文件到指定提交的状态

如果你想将文件 <file> 恢复到特定提交 <commit> 的状态,可以使用以下命令:

git restore --source=<commit> <file>

这个命令在需要查看历史状态或将文件还原到历史版本时非常有用。

  • 交互式还原

以下命令允许你以交互方式选择要还原或保留的更改:

git restore -i

执行这个命令它会打开一个交互式界面,让你选择如何处理每个更改。

git restore 的目标是提供一种更直观、易于理解的方式来管理文件的状态,它的引入使得 Git 用户能够更容易地处理不同阶段的更改,从而提高了工作流的效率。

注意

git restore 是 Git 2.23 版本引入的一个命令,如果你使用的是较早版本的 Git,可能无法使用 git restore 命令,但你仍然可以使用 git checkout 等命令来进行类似的操作。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 ArcGIS 对洪水预测进行建模

第一步 — 下载数据 所有数据均已包含在 Esri 提供的项目压缩文件中。我将创建一个名为“Stowe_Hydrology.gdb”的新地理数据库,在其中保存这些数据以及创建的所有后续图层。 1-0。斯托市边界 斯托城市边界是佛蒙特州地理信息中心提供的矢量要素类面。我将这一层称为“Stow…

2018年华三杯山东省赛决赛实验

2018年华三杯山东省赛决赛实验 拓扑图 配置需求 请考生根据以下配置需求在 HCL中的设备上进行相关配置。 网络设备虚拟化 数据中心交换机需要实现虚拟化。支持的虚拟化技术 IRF,所配置的参数要求如下: 链形堆叠,IRF Domain 值为 10; IRF1的 member ID 为 1,IRF2的 member …

【MySQL】Linux环境下MySQL基本操作

目录 一、登录进入MySQL 二、MySQL数据库的查看、创建、删除、重命名、拷贝操作 三、数据库下表的创建、删除、查看、修改&#xff08;增加、删除、更新字段/列&#xff0c;修改字段/列名&#xff09; 四、表中数据的插入、删除、查找、更新 一、登录进入MySQL mysql -u u…

Spring的过滤器、拦截器、切面区别及案例分析

Spring的过滤器、拦截器、切面 三者的区别&#xff0c;以及对应案例分析 一、三者的实现方式 1.1 过滤器 xxxFilter 过滤器的配置比较简单&#xff0c;直接实现Filter接口即可&#xff0c;也可以通过WebFilter注解实现对特定URL的拦截&#xff0c;Filter接口中定义了三个方法…

Java 网络编程之TCP(一):基于BIO

环境&#xff1a; jdk 17 IntelliJ IDEA 2023.1.1 (Ultimate Edition) Windows 10 专业版 22H2 TCP&#xff1a;面向连接的&#xff0c;可靠的数据传送协议 Java中的TCP网络编程&#xff0c;其实就是基于常用的BIO和NIO来实现的&#xff0c;本文先讨论BIO&#xff1b; BIO…

【STM32+HAL+Proteus】系列学习教程---RS485总线(收发仿真实现)

实现目标 1、掌握UART/USART/RS485等几个常见概念的区别 2、掌握RS485的逻辑电平、硬件接线等基础知识 3、具体实现目标&#xff1a;1、利用两个单片机组成RS485通信网络&#xff1b;2、两个单片机之间能实现正常收发数据。 一、串口、RS485等之间的关系 串口&#xff1a;是…

计算机网络学习day02|HTTP协议

目录 一、HTTP报文格式长什么样&#xff1f;是如何分割的&#xff1f; 请求行 状态行 头部字段 常用头字段 小结 二、HTTP提供了哪些方法&#xff1f;GET和POST的区别是什么&#xff1f; 1.HTTP有哪些方法 2.GET/HEAD 3.PSOT/PUT 小结 三、URI和URL URI 的格式 U…

『FPGA通信接口』串行通信接口-IIC(2)EEPROM读写控制器

文章目录 1.EEPROM简介2.AT24C04简介3.逻辑框架设计4.随机读写时序5.仿真代码与仿真结果分析6.注意事项7.效果8.传送门 1.EEPROM简介 EEPROM (Electrically Erasable Programmable read only memory) 是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。在嵌入…

Leetcode 119 杨辉三角 II

目录 一、问题描述二、示例及约束三、代码方法一&#xff1a;递推方法二&#xff1a;线性递推 四、总结 一、问题描述 给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowIndex 行。   在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。   自我…

【后端】python2和python3的安装与配置

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、python是什么二、python环境的安装与配置Python 2的安装与配置Python 3的安装与配置注意事项 三、总结 前言 随着开发语言及人工智能工具的普及&#xff0…

什么是整柜拼箱?FBA海运是选择拼箱还是整柜?

在跨境电商领域&#xff0c;FBA模式已成为众多卖家优选的物流方式。而在FBA海运过程中&#xff0c;整柜和拼箱是两种常见的运输方式。那么&#xff0c;什么是整柜拼箱?在FBA海运中&#xff0c;我们又该如何选择拼箱还是整柜呢?本文将深入探讨这两种运输方式的特点和适用场景&…

k8s pod使用sriov

之前的文章中讲了k8s multus的使用&#xff0c;本章节来讲述下如何使用multus来实现sriov的使用。 一、sriov 简介 SR-IOV在2010年左右由Intel提出&#xff0c;但是随着容器技术的推广&#xff0c;intel官方也给出了SR-IOV技术在容器中使用的开源组件&#xff0c;例如&#…