📜  Git Stash

📅  最后修改于: 2020-12-13 14:02:01             🧑  作者: Mango

吉特·斯塔什

有时您想切换分支,但是您正在处理当前项目的不完整部分。您不想做半完成的工作。 Git隐藏可以使您做到这一点。 git stash命令使您可以在不提交当前分支的情况下切换分支。

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

通常,藏匿处的含义是“将物品安全地存储在隐藏的地方” 。 Git中的隐匿感也相同。 Git暂时安全地保存您的数据而无需提交。

存放会使您的工作目录处于混乱状态,并暂时将其保存以备将来使用。 git stash提供了许多选项。下面列出了一些有用的选项:

  • Git藏匿处
  • Git隐藏保存
  • Git存储列表
  • Git隐藏
  • Git隐藏
  • Git藏起来流行
  • Git藏匿下落
  • Git隐藏
  • Git藏匿处

藏匿工作

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

句法:

$ git status

输出:

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

句法:

$ git stash

输出:

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

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

Git Stash Save(保存垃圾信息):

在Git中,可以通过消息隐藏更改。要用消息存储更改,请运行以下命令:

句法:

$ git stash save ""

输出:

上面的存储将与消息一起保存

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

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

句法:

$ git stash list

输出:

在上述情况下,我已存储一个存储,在测试中显示为“ stash @ {0}:WIP:0a1a475 CSS文件”。

如果我们有一个以上的存储,那么它将分别显示具有不同存储ID的所有存储。考虑以下输出:

它将显示索引为stash @ {0}:stash @ {1}:的所有存储库,依此类推。

Git Stash申请

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

句法:

$ git stash apply

输出:

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

从以上输出中,您可以看到存储库已还原到存储之前的先前状态。它显示输出为“未暂缓进行提交的更改”。

如果存在多个存储,则可以使用“ git stash apply”命令,然后使用存储索引ID来应用特定的提交。它用作:

句法:

$ git stash apply 

考虑以下输出:

输出:

如果我们没有指定存储,Git将获取最新的存储并尝试应用它。

Git隐藏

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

句法:

$ git stash show

上面的命令将显示存放的文件以及对其进行的更改。考虑以下输出:

输出:

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

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

句法:

$ git stash show -p

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

输出:

上面的输出显示了具有更改内容的文件名。它的作用与git diff命令相同。 git diff命令还将显示确切的输出。

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

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

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

句法:

$ git stash pop

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

输出:

Git Stash Drop(Unstash)

git stash drop命令用于从队列中删除存储。通常,它会删除最新的存储。使用stash drop命令之前应格外小心,因为一旦应用它就很难撤消。

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

句法:

$ git stash drop

输出:

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

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

句法:

$ git stash drop 

假设我的队列中有两个存储区,并且我不想删除最近的存储区,但是我想删除较旧的存储区。然后,将其操作为:

$ git stash drop stash@{1}

考虑以下输出:

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

Git隐藏

git stash clear命令允许一次删除所有可用的存储。要删除所有可用的存储,请按以下命令操作:

句法:

$ git stash clear

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

输出:

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

吉特藏匿处

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

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

句法:

$ git stash branch 

上面的命令将创建一个新分支,并在此分支上转移已保存的工作。考虑以下输出:

输出:

在以上输出中,将保存的工作转移到新创建的分支测试中。它将避免master分支上的合并冲突。