程序员社区

Git系列教程 --- 18、Git的储存(Git Stash)

有时您想切换分支,但您正在处理当前项目的不完整部分。您不想提交未完成的工作。Git 存储允许您这样做。在git的藏匿命令允许你切换分支不提交当前分支。

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

file

一般来说,stash 的意思是“把东西安全地存放在一个隐蔽的地方”。Git 中的 stash 意义也相同;Git 暂时安全地保存您的数据,无需提交。

Stashing 处理您工作目录的凌乱状态,并暂时保存以供进一步使用。git stash 提供了许多选项。下面给出了一些有用的选项:

  • Git 存储
  • Git 存储保存
  • Git 存储列表
  • Git 存储应用
  • Git 存储更改
  • Git 藏匿流行
  • Git 藏匿处
  • Git 存储清除
  • Git存储分支

藏匿工作

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

句法:

$ git status  

输出:

file

从上面的输出中,您可以看到存储库中有两个未跟踪的文件design.cssnewfile.txt可用的状态。为了暂时保存它,我们可以使用 git stash 命令。git stash 命令用作:

句法:

$ git stash  

输出:

file

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

file

如您所见,我的作品只是藏在当前位置。现在,目录已被清理。此时,您可以在分支之间切换并对其进行处理。

Git Stash Save(使用消息保存Stash):

在 Git 中,更改可以与消息一起存储。要使用消息存储更改,请运行以下命令:

句法:

$ git stash save "<Stashing Message>"  

输出:

file

上述藏匿处将与一条消息一起保存

Git 存储列表(检查存储的存储)

要检查存储的存储,请运行以下命令:

句法:

$ git stash list  

输出:

file

在上面的例子中,我做了一个 stash,它显示为“ stash@ {0}: WIP on the test: 0a1a475 CSS file ”。

如果我们有多个 stash,那么它将分别显示所有具有不同 stash id 的 stash。考虑以下输出:

file

它将显示索引为stash@ {0}: stash@ {1}:等的所有stash

Git 存储应用

您可以使用 git stash 命令重新应用刚刚隐藏的更改。要应用提交,请使用 git stash 命令,后跟 apply 选项。它被用作:

句法:

$ git stash apply  

输出:

file

上面的输出恢复了最后的存储。现在,如果您要检查存储库的状态,它将显示对文件所做的更改。考虑以下输出:

file

从上面的输出中,您可以看到存储库已恢复到 stash 之前的状态。它将输出显示为“更改未暂存以进行提交”

如果有多个 stash,您可以使用“git stash apply”命令后跟 stash 索引 id 来应用特定的提交。它被用作:

句法:

$ git stash apply <stash id>  

考虑以下输出:

输出:

file

如果我们不指定一个 stash,Git 会使用最新的 stash 并尝试应用它。

Git 存储更改

我们可以跟踪存储及其变化。要在存储之前和存储操作之后查看文件中的更改,请运行以下命令:

句法:

$ git stash show  

上面的命令将显示隐藏的文件和对它们所做的更改。考虑以下输出:

输出:

file

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

我们可以准确地跟踪对文件所做的更改。要显示文件的更改内容,请执行以下命令:

句法:

$ git stash show -p  

这里,-p 代表部分存储。给定的命令将显示编辑过的文件和内容,请考虑以下输出:

输出:

file

上面的输出显示了内容已更改的文件名。它的作用与 git diff 命令相同。在git的差异命令也将显示精确的输出。

Git Stash Pop(重新应用隐藏的更改)

Git 允许用户使用 git stash pop 命令重新应用以前的提交。弹出选项从存储中删除更改并将它们应用于您的工作文件。

git stash pop 命令与 git stash apply 非常相似。这两个命令之间的主要区别是 stash pop 命令,它在应用后从堆栈中删除 stash。

句法:

$ git stash pop  

上面的命令会将之前的提交重新应用到存储库。考虑以下输出。

输出:

file

Git Stash Drop (Unstash)

GIT中藏匿降命令用于从队列中删除一个存储。通常,它会删除最近的存储。在使用 stash drop 命令之前应该小心,因为一旦应用就很难撤消。

恢复它的唯一方法是在删除存储后不关闭终端。stash drop 命令将用作:

句法:

$ git stash drop  

输出:

file

在上面的输出中,最近的存储( stash@ {0})已从给定的三个存储中删除。stash list 命令列出队列中所有可用的 stash。

我们还可以从队列中删除特定的存储。要从可用的 stash 中删除特定的 stash,请在 stash drop 命令中传递 stash id。它将被处理为:

句法:

$ git stash drop <stash id>  

假设我的队列中有两个可用的 stash,并且我不想删除最近的 stash,但我想删除旧的。然后,它将被操作为:

$ git stash drop stash@{1}  

考虑以下输出:

file

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

Git 存储清除

git的藏匿明确命令允许一次删除所有可用的藏匿处。要删除所有可用的存储,请操作以下命令:

句法:

$ git stash clear  

它将删除存储库中存在的所有存储。

输出:

file

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

Git 存储分支

如果您在特定分支上存储了一些工作并继续在该分支上工作。然后,它可能会在合并过程中产生冲突。因此,最好将工作存储在单独的分支上。

git stash branch 命令允许用户将工作存储在单独的分支上以避免冲突。该分支的语法如下:

句法:

$ git stash branch <Branch Name>  

上面的命令将创建一个新分支并转移其上的隐藏工作。考虑以下输出:

输出:

file

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

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Git系列教程 --- 18、Git的储存(Git Stash)

一个分享Java & Python知识的社区