在 Git 中缓存一个文件
有时,当我们在做一个巨大的项目时,我们会遇到工作状态由于各种原因而变得混乱的情况。
在这种情况下,我们需要切换分支一段时间才能更好地工作。对于这种情况,我们可能面临的问题是,我们不需要为了以后可以接近这一点而提交已经完成了一半的工作。
这个问题的解决方案是 git stash
命令。git stash
命令让我们可以将工作目录的状态临时缓存在临时文件中。
,我们可以说我们可以切换分支,提交我们想要的工作,然后返回到我们使用命令 git stash
搁置的工作。
换句话说,我们可以说 git stash
命令非常简单;它缓存我们工作目录的当前状态和我们的缓存文件中的索引。这意味着没有对索引或工作目录进行任何更改。
Stashing 获取我们工作目录的无关状态,即我们修改后的跟踪文件和暂存更改,并将其保存在未完成更改的堆栈数据类型中,你以后也可以使用不同的分支重新应用这些更改。
在我们工作的时候,我们可能会进行很多更改并添加很多脏文件,但是当我们缓存时,Git 只会保存我们工作目录的一个干净的快照。
我们应该知道,缓存文件意味着我们将该文件的内容推送到 stash
。如果我们再次更改文件,它将在 stash
中更改,而不是在工作目录中。因此,我们不应该在缓存文件后更改文件。
我们应该使用 stash save
命令来缓存文件。如果我们想将所有更改缓存在工作目录中,我们应该使用 stash save --all
命令。如果我们想取消缓存文件,我们应该使用 stash pop
命令。
在 Git 中只缓存一个文件的步骤
假设我们有七个文件,并且我们已经更改了所有文件。现在我们将看到应该遵循哪些步骤来仅缓存当前仓库中的七个文件之一。
-
查看更改的文件
首先,我们将执行命令
git status
来检查已修改的文件列表。git status
-
暂存文件
检查列表后,我们将运行命令
git add
来暂存所有七个文件:git add .
-
取消暂存
在对所有文件进行暂存后,下一步是在
git reset
命令的帮助下解除对file2
的暂存。git reset file2
-
存放该文件
现在我们要用
git stash
命令把file2
藏起来,让它回到当前版本库中的提交阶段。git stash --keep-index
另一种方法是执行以下命令,我们可以只存放一个文件。
git stash save -p "commit message"
借助上述方法,我们可以选择应将哪个块添加到缓存中。此外,如果我们处理过文件,我们可以在提交之前缓存更改,以便使用我们的工作文件完成提交。
该命令将缓存添加到索引中的更改(暂存更改)和对 Git 当前跟踪的文件所做的更改(未暂存更改)。
缓存是一种对我们的工作副本的当前状态进行快照,将快照缓存起来,然后返回到干净的工作副本状态的方法。
一旦我们将更改添加到索引中,我们就可以提交它们。如果我们想将更改缓存在工作目录而不是索引中,请使用 --keep-index
选项。可以随时重新应用隐藏的更改。
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn