Git 系列 - Git add 将修改添加到暂存区
bigegpt 2024-10-27 08:18 3 浏览
Git 有一个额外的保存机制,称为“ stash ”。stash 是一个临时存储区域,用于存储尚未准备好提交的更改。
git add命令将工作目录中的更改添加到暂存区。它告诉 Git 我们希望在下一次提交中包含对特定文件的更新。但是,git add并不会以任何的方式真正影响仓库 。直到运行git commit命令后才会真正对仓库进行了修改。
工作原理
git add和git commit 命令组成了基本Git的工作流程。这是每个 Git 用户都需要了解的两个命令,不管其团队的协作模式是怎样的。它们是将项目版本记录到仓库历史记录中的方法。
开发项目围绕基本的编辑/暂存/提交模式。首先,在工作目录中编辑文件。当准备好保存项目当前状态的副本时,就可以使用git add命令。在对暂存快照感到满意后,可以使用 git commit 命令将其提交到项目历史记录中。git reset 命令用于撤销提交或暂存的快照。
除了git add和 之外git commit,第三个命令git push 对于完整的 Git 协作工作流程也是必不可少的。git push 用于将提交的更改发送到远程仓库。这使得团队的其他成员能够访问一组已保存的更改。
我们不应该将 git add 命令和svn add命令混淆。svn add是每次都将文件添加到仓库中去。而 git add 只是添加到暂存区。git add命令在每次修改文件之后都需要被调用,而 svn add 仅需要调用一次。
暂存区
git add命令的主要功能是将工作目录中的更改添加到git的暂存区域。暂存区是 Git 更独特的功能之一。我们可以将其视为工作目录和项目历史记录之间的缓冲区。
该阶段不必提交自上次提交以来所做的所有更改,而是可以将相关更改分组到高度集中的快照中,然后再将其提交到项目历史记录中。这意味着我们可以对不相关的文件进行各种编辑,然后返回并将其拆分为逻辑提交,方法是将相关更改添加到暂存区并逐段提交。与任何版本控制系统一样,创建原子提交非常重要,这样可以轻松地跟踪bug并恢复更改,而对项目其余部分的影响最小。
所谓原子提交是指每次提交的更改都是一个独立的功能修改,一次提交的修改不要 包含两个功能或bug修改。
常用选项
git add 命令一次可以添加一个文件,也可以添加一个目录。
git add <file>
<file>为下一次提交暂存所有更改的文件。
git add <directory>
<directory>为下一次提交暂存所有更改所在的目录。
git add -p
开始一个交互式暂存会话,让您选择要添加到下一次提交的文件部分。
我们可以看到会话中显示提示我们输入的命令都有哪些
- y - 暂存块
- a - 添加
- n - 忽略块
- e - 手动编辑块
- q - 退出
或者使用另一种交互模式
$ git add -i
示例
当开始一个新项目时,要创建当前目录的初始提交,可以使用以下两个命令:
$ git add .
$ git commit
一旦项目启动并运行,就可以通过将路径传递给 git add 来添加新文件:
$ git add hello.txt
$ git commit
上述命令还可用于记录对现有文件的更改。
Git 不会区分新文件中的暂存更改与已添加到存储库中的文件中的更改。
相关推荐
- AI「自我复制」能力曝光,RepliBench警示:大模型正在学会伪造身份
-
科幻中AI自我复制失控场景,正成为现实世界严肃的研究课题。英国AISI推出RepliBench基准,分解并评估AI自主复制所需的四大核心能力。测试显示,当前AI尚不具备完全自主复制能力,但在获取资源...
- 【Python第三方库安装】介绍8种情况,这里最全看这里就够了!
-
**本图文作品主要解决CMD或pycharm终端下载安装第三方库可能出错的问题**本作品介绍了8种安装方法,这里最全的python第三方库安装教程,简单易上手,满满干货!希望大家能愉快地写代码,而不要...
- pyvips,一个神奇的 Python 库!(pythonvip视频)
-
大家好,今天为大家分享一个神奇的Python库-pyvips。在图像处理领域,高效和快速的图像处理工具对于开发者来说至关重要。pyvips是一个强大的Python库,基于libvips...
- mac 安装tesseract、pytesseract以及简单使用
-
一.tesseract-OCR的介绍1.tesseract-OCR是一个开源的OCR引擎,能识别100多种语言,专门用于对图片文字进行识别,并获取文本。但是它的缺点是对手写的识别能力比较差。2.用te...
- 实测o3/o4-mini:3分钟解决欧拉问题,OpenAI最强模型名副其实!
-
号称“OpenAI迄今为止最强模型”,o3/o4-mini真实能力究竟如何?就在发布后的几小时内,网友们的第一波实测已新鲜出炉。最强推理模型o3,即使遇上首位全职提示词工程师RileyGoodsid...
- 使用Python将图片转换为字符画并保存到文件
-
字符画(ASCIIArt)是将图片转换为由字符组成的艺术作品。利用Python,我们可以轻松实现图片转字符画的功能。本教程将带你一步步实现这个功能,并详细解释每一步的代码和实现原理。环境准备首先,你...
- 5分钟-python包管理器pip安装(python pip安装包)
-
pip是一个现代的,通用、普遍的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能,是Python开发的基础。第一步:PC端打开网址:选择gz后缀的文件下载第二步:...
- 网络问题快速排查,你也能当好自己家的网络攻城狮
-
前面写了一篇关于网络基础和常见故障排查的,只列举了工具。没具体排查方式。这篇重点把几个常用工具的组合讲解一下。先有请今天的主角:nslookup及dig,traceroute,httping,teln...
- 终于把TCP/IP 协议讲的明明白白了,再也不怕被问三次握手了
-
文:涤生_Woo下周就开始和大家成体系的讲hadoop了,里面的每一个模块的技术细节我都会涉及到,希望大家会喜欢。当然了你也可以评论或者留言自己喜欢的技术,还是那句话,希望咱们一起进步。今天周五,讲讲...
- 记一次工控触摸屏故障的处理(工控触摸屏维修)
-
先说明一下,虽然我是自动化专业毕业,但已经很多年不从事现场一线的工控工作了。但自己在单位做的工作也牵涉到信息化与自动化的整合,所以平时也略有关注。上一周一个朋友接到一个活,一家光伏企业用于启动机组的触...
- 19、90秒快速“读懂”路由、交换命令行基础
-
命令行视图VRP分层的命令结构定义了很多命令行视图,每条命令只能在特定的视图中执行。本例介绍了常见的命令行视图。每个命令都注册在一个或多个命令视图下,用户只有先进入这个命令所在的视图,才能运行相应的命...
- 摄像头没图像的几个检查方法(摄像头没图像怎么修复)
-
背景描述:安防监控项目上,用户的摄像头运行了一段时间有部分摄像头不能进行预览,需要针对不能预览的摄像头进行排查,下面列出几个常见的排查方法。问题解决:一般情况为网络、供电、设备配置等情况。一,网络检查...
- 小谈:必需脂肪酸(必需脂肪酸主要包括)
-
必需脂肪酸是指机体生命活动必不可少,但机体自身又不能合成,必需由食物供给的多不饱和脂肪酸(PUFA)。必需脂肪酸主要包括两种,一种是ω-3系列的α-亚麻酸(18:3),一种是ω-6系列的亚油酸(18:...
- 期刊推荐:15本sci四区易发表的机械类期刊
-
虽然,Sci四区期刊相比收录在sci一区、二区、三区的期刊来说要求不是那么高,投稿起来也相对容易一些。但,sci四区所收录的期刊中每本期刊的投稿难易程度也是不一样的。为方便大家投稿,本文给大家推荐...
- be sick of 用法考察(be in lack of的用法)
-
besick表示病了,做谓语.本身是形容词,有多种意思.最通常的是:生病,恶心,呕吐,不适,晕,厌烦,无法忍受asickchild生病的孩子Hermother'sverysi...
- 一周热门
- 最近发表
-
- AI「自我复制」能力曝光,RepliBench警示:大模型正在学会伪造身份
- 【Python第三方库安装】介绍8种情况,这里最全看这里就够了!
- pyvips,一个神奇的 Python 库!(pythonvip视频)
- mac 安装tesseract、pytesseract以及简单使用
- 实测o3/o4-mini:3分钟解决欧拉问题,OpenAI最强模型名副其实!
- 使用Python将图片转换为字符画并保存到文件
- 5分钟-python包管理器pip安装(python pip安装包)
- 网络问题快速排查,你也能当好自己家的网络攻城狮
- 终于把TCP/IP 协议讲的明明白白了,再也不怕被问三次握手了
- 记一次工控触摸屏故障的处理(工控触摸屏维修)
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)