📌  相关文章
📜  在 Git 中暂存

📅  最后修改于: 2022-05-13 01:58:11.145000             🧑  作者: Mango

在 Git 中暂存

为了跟踪文件中的修改或更改,我们必须将这些更改带到我们使用Staging带来的暂存区域。下面的命令和在一个区域中添加这些更改或修改以跟踪它的过程称为暂存。而Hunk意味着一块变化。例如,我们在一个文件中写入了 4 行文本并修改了该文件中的 4 行文本,这被称为大块,您可以将其视为一个更改。

git add

分期变更

在这里,我们将编辑我的文件 a.txt,在使用 git status 命令后,您可以看到它在绿色部分显示了一些内容,这意味着该文件已暂存但尚未提交,红色部分是在文件中进行的一些未暂存的更改,例如您在文件中写入 hello 然后使用git add命令将其放入暂存区域但之后如果我们在文件中写入“bhailogs”然后如果您不是使用 git add 命令在暂存区域添加该更改,然后您将看到红色,这意味着有一些更改需要跟踪或暂存。现在我们将通过各种方法将文件中的更改添加到暂存区。如果您想暂存所有更改,我们将使用 git add -A 命令或 git add。其中代表当前目录。

分期变更

取消暂存文件

现在,如果您希望取消暂存文件,即您不希望该文件位于暂存区域中,那么您可以使用命令git reset file_path取消暂存文件。现在在这里我们可以看到我在应用 git status 命令后添加了暂存区域中的所有文件,您可以看到所有文件都在暂存区域中,所以现在我希望 b.txt 不应该在暂存区域中所以从暂存区删除 b.txt 我使用了命令git reset file_path但这里我只在路径中所以我不需要在文件路径中提及整个路径因为 b.txt 存在于我的当前目录中所以我将写入git reset file_name以从暂存区中删除 b.txt。

取消暂存文件

按大块添加更改

这里我们使用了git add -p 命令,在这里我可以看到之后没有要暂存的更改,我编辑了文件 a.txt。编辑后

该文件我们再次使用了命令git add -p 命令,它将打开一个交互式提示,询问用户是否要

将此块与各种参数一起上演。

Stages of HunkAction Performed
yStage this hunk for the next commit
ndo not stage this hunk for the next commit
qquit; do not stage this hunk or any of the commits
astage this hunk and all later hunks in the file
ddo not stage this hunk or any of the later hunks in the file
emanually edit the current hunk
?print hunk help

这使您可以轻松查看您想要暂存或不暂存的更改。

使用 git add -p 显示交互式提示

在这里我输入 y 以在暂存区添加这个大块

交互式添加

git add -i是为我们提供交互式界面以及该界面中的各种命令的命令。所以现在让我们深入了解这个交互式添加它是什么以及它在界面中提供的各种命令是如何工作的。

显示 git add -i 命令提供的界面

在这里,我们可以看到命令输出的上半部分为我们提供了索引的当前状态,分为暂存列和未暂存列。

  • a.txt 添加了 1 行,删除了 0 行。它当前处于暂存状态,因为当前状态在未暂存列中没有报告任何内容。
  • b.txt 添加了 0 行,删除了 0 行并已上演。没有进一步的变化,因为它已被暂存,如未暂存列下的“无”行所示。

下半部分显示您可以做什么。输入数字 (1-8) 或字母 (s,u,r,a,p,d,q,h)。

status显示的输出与上面输出的顶部相同。

使用状态命令

现在要了解更新命令的工作原理,我所做的是对 a.txt 和暂存进行了一些更改,每当您修改文件或任何文件夹中的某些内容时,您必须在暂存区域中添加这些更改。但我没有将这些更改添加到暂存区。所以在这里我将使用更新命令将这个文件添加到暂存区。正如您在此处使用git status命令看到的那样,我可以看到我已经修改了 a.txt,但我没有将这些更改添加到暂存区域。

使用 git status 命令查看 a.txt 的状态

现在让我们看看 更新命令

使用更新命令

现在使用更新命令后,如果我使用git status查看项目的状态,那么您可以看到文件 a.txt 已添加到暂存区域。

使用 git status 命令使用 update 命令验证更改是否已暂存

revert基本上将信息还原到头部。因此,当您使用它进入交互模式时,添加 -I 命令并在那边按 3,您将进入 revert 命令,所以现在发生的情况是它会显示文件以及您希望恢复哪个文件的信息,您可以将信息还原回头部键入该索引号,然后按 Enter。那么会发生什么,它将在该索引位置上提到一个星号。如果您在此之后按 Enter 键,则会将相应的文件放入未跟踪的文件中。

使用还原命令

所以你现在也可以检查

使用git status命令,文件 b.txt 现在位于未跟踪的文件中。

使用 git status 命令验证 b.txt 是否在未跟踪的文件中

添加未跟踪它允许您在暂存区域添加未跟踪的文件。

使用添加未跟踪命令

现在我们可以看到 b.txt 被添加到暂存区。

使用 git status 查看 b.txt 在暂存区

patch它允许从类似于 status 的输出中选择一个路径以进行进一步分析

但是这里没有要上演的更改,因此这里它不会向我们显示任何更改。

使用补丁命令

diff显示将提交的内容。

使用差异命令

退出 命令

使用退出命令

help提供有关使用命令的进一步帮助。

使用帮助命令

Staged Changes :显示为提交暂存的数据块

使用git diff –cached

暂存单个文件:现在,如果您想暂存单个文件,您只需输入命令git add file_name就这么简单,您将看到正在添加相应的文件。现在我所做的是我使用命令git reset file_name将我的 b.txt 放入未跟踪的文件中,我的文件名是 b.txt,然后我使用命令git add file_name将我的 b.txt 放入暂存区.

使用 git add 暂存文件

阶段删除文件:要从 git 中永久删除文件,请使用命令git rm -f file_name 中的 -f 标志。

 

使用 git rm -f file_name 永久删除文件

要从 git 中删除文件而不将其从磁盘中删除,请使用–cached标志

因此,为了理解这一点,我所做的是创建一个文件 r.txt 然后将其添加到暂存区域,然后使用 git 中的–cached标志将其删除,所以发生的情况是它已从暂存区域中删除但没有从中删除磁盘并由 git 放入未跟踪的文件中,所以现在如果我想要添加该文件 r.txt,我将使用git add r.txt将该文件再次添加到暂存区域。

使用 git rm –cached 文件名

使用 git status 命令查看 r.txt 是否在未跟踪的文件中

使用 git add 命令将 r.txt 文件添加到暂存区