Git – Stash命令

有时你想切换分支,但你正在处理当前项目的一个未完成部分。你不想对半成品进行提交。Git 缓存允许你这样做。git stash 命令使你能够在不提交当前分支的情况下切换分支。

下图展示了关于存储库和工作目录的属性和作用。

Git Stash

一般来说,stash的意思是 “把东西安全地存放在一个隐蔽的地方”。在Git中,储藏室的意义也是如此;Git在不提交的情况下暂时安全地保存了你的数据。

储藏把你的工作目录的混乱状态,暂时保存起来以便进一步使用。git stash有许多选项。下面给出了一些有用的选项。

  • Git stash
  • Git stash save
  • Git stash list
  • Git stash apply
  • Git stash changes
  • Git stash pop
  • Git stash drop
  • Git stash clear
  • Git stash branch

暂存工作

让我们通过一个实时场景来理解它。我对我的项目GitExample2在两个不同的分支中的两个文件进行了修改。我现在处于一个混乱的状态,还没有完全编辑任何文件。所以我想把它暂时保存起来,以便将来使用。我们可以把它藏起来,保存为其当前状态。为了藏匿,让我们看一下版本库的当前状态。要检查版本库的当前状态,运行git status命令。git status 命令的使用方法是。

语法:

$ git status

输出:

Git Stash

从上面的输出中,你可以看到在仓库中有两个未跟踪的文件design.css和newfile.txt。为了暂时保存它,我们可以使用git stash命令。git stash 命令的使用方法是。

语法:

$ git stash

输出:

Git Stash

在给出的输出中,工作是用git stash命令保存的。我们可以检查版本库的状态。

Git Stash

正如你所看到的,我的工作只是藏在当前位置。现在,目录已经清理完毕。在这一点上,你可以在不同的分支之间切换,并对它们进行工作。

Git Stash 保存 (保存Stash并指定信息):

在Git中,变化可以用消息来存储。要想用消息隐藏一个改动,请运行下面的命令。

语法:

$ git stash save ""

输出:

Git Stash

上述藏品将被保存,并附有信息

Git Stash列表(检查已缓存的Stash)

要检查存储的藏品,请运行以下命令。

语法:

$ git stash list

输出:

Git Stash

在上述情况下,我做了一个藏品,显示为 “stash{0}。测试中的WIP。0a1a475 CSS文件”。

如果我们有一个以上的储藏室,那么它将分别以不同的储藏室ID显示所有的储藏室。请看下面的输出。

Git Stash

它将显示所有索引为stash{0}: stash{1}: 等的存储区。

Git Stash重新应用

你可以通过使用 git stash 命令来重新应用你刚刚藏匿的修改。要应用提交,请使用git stash命令,后面加上apply选项。它的用法是:。

语法:

$ git stash apply

输出:

Git Stash

上面的输出恢复了最后的储存库。现在,如果你要检查版本库的状态,它会显示对文件所做的修改。考虑一下下面的输出。

Git Stash

从上面的输出中,你可以看到版本库已经恢复到储藏前的状态。它的输出显示为 “Changes not staged for commit”。

如果有一个以上的储藏室,你可以使用 “git stash apply “命令,后面跟着储藏室的索引ID来应用特定的提交。它的使用方法是

语法:

$ git stash apply <stash id>

考虑下面的输出。

输出:

Git Stash

如果我们没有指定一个储藏库,Git就会采用最近的储藏库并试图应用它。

Git Stash改变

我们可以跟踪藏匿和它们的变化。要看到文件在藏匿前和藏匿后的变化,请运行以下命令。

语法:

$ git stash show

上述命令将显示被藏匿的文件和对它们所做的修改。请看下面的输出。

输出:

Git Stash

上面的输出说明,有两个文件被藏起来了,并对它们进行了两次插入。

我们可以准确地跟踪文件上的变化。要显示文件的变化内容,请执行以下命令。

语法:

$ git stash show -p

这里,-p代表部分藏书。给定的命令将显示被编辑的文件和内容,考虑下面的输出。

输出:

Git Stash

上面的输出显示的是文件名和更改的内容。它的作用与git diff命令相同。git diff命令也会显示准确的输出。

Git 取出Stash (重新应用Stashed内容)

Git允许用户通过使用git stash pop命令来重新应用之前的提交。popping 选项将修改从储藏库中移除并应用到你的工作文件中。

git stash pop 命令与 git stash apply 很相似。这两个命令的主要区别是 stash pop 命令在应用后从堆栈中删除藏书。

语法:

$ git stash pop

上述命令将重新应用之前的提交到版本库中。请看下面的输出。

输出:

Git Stash

Git 丢弃Stash(Unstash)

git stash drop 命令是用来从队列中删除一个储藏库。一般来说,它会删除最近的藏书。在使用 stash drop 命令之前,应该小心谨慎,因为它一旦应用就很难撤销。

唯一的办法是在删除储藏室后不关闭终端,以恢复它。stash drop命令将被作为。

语法:

$ git stash drop

输出:

Git Stash

在上面的输出中,最近的一个储藏库(stash{0})已经从给定的三个储藏库中被丢弃。stash list命令列出了队列中所有可用的藏品。

我们还可以从队列中删除一个特定的储藏库。要从可用的储藏库中删除一个特定的储藏库,在stash drop命令中传递储藏库的ID。它将被处理为。

语法:

$ git stash drop <stash id>

假设我的队列中有两个可用的藏品,我不想放弃最近的藏品,但我想删除较早的藏品。那么,它将被操作为。

$ git stash drop stash@{1}

考虑下面的输出。

Git Stash

在上面的输出中,提交的stash{1}已经从队列中删除。

Git 清除Stash

git stash clear 命令允许一次性删除所有可用的储藏库。要删除所有可用的储藏库,请执行以下命令。

语法:

$ git stash clear

它将删除版本库中存在的所有存储空间。

输出:

Git Stash

在上面的输出中,所有的储藏库都被删除了。git stash list 命令是空白的,因为版本库中没有可用的储藏库。

Git Stash分支

如果你把一些工作藏在某一分支上,并继续在该分支上工作。那么,在合并过程中可能会产生冲突。所以,把工作藏在一个单独的分支上是好的。

git stash branch 命令允许用户将工作藏在一个单独的分支上,以避免冲突。这个分支的语法如下。

语法:

$ git stash branch <Branch Name>

上述命令将创建一个新的分支,并将储存的工作转移到该分支上。请看下面的输出。

输出:

Git Stash

在上面的输出中,隐藏的工作被转移到一个新创建的测试分支。这将避免主分支上的合并冲突。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程