freeCodeCamp/guide/chinese/git/git-stash/index.md

2.6 KiB
Raw Blame History

title localeTitle
Git Stash Git Stash

Git Stash

Git有一个名为stash的区域您可以在其中临时存储更改的快照而无需将它们提交到存储库。它与工作目录临时区域或存储库分开。

当您对尚未准备好提交的分支进行更改但是需要切换到另一个分支时,此功能非常有用。

藏匿变化

要将更改保存在存储中,请运行以下命令:

git stash save "optional message for yourself" 

这将保存您的更改并将工作目录恢复为最新提交的外观。可以从该存储库中的任何分支进行隐藏更改。

请注意,您要隐藏的更改需要位于跟踪的文件中。如果您创建了一个新文件并尝试存储更改,则可能会收到错误“ No local changes to save

查看Stashed Changes

要查看存储中的内容,请运行以下命令:

git stash list 

这将以stash@{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGE的格式返回已保存快照的列表stash@{0}: BRANCH-STASHED-CHANGES-ARE-FOR: MESSAGEstash@{0}部分是存储的名称,花括号( { } )中的数字是该存储的索引。如果您有多个更改集存储,则每个更改集将具有不同的索引。

如果您忘记了存储中所做的更改,您可以使用git stash show NAME-OF-STASH查看它们的摘要。如果要查看典型的diff-style补丁布局使用+'和-s进行逐行更改可以包含-p for patch选项。这是一个例子

git stash show -p stash@{0} 
 
 # Example result: 
 diff --git a/PathToFile/fileA b/PathToFile/fileA 
 index 2417dd9..b2c9092 100644 
 --- a/PathToFile/fileA 
 +++ b/PathToFile/fileA 
 @@ -1,4 +1,4 @@ 
 -What this line looks like on branch 
 +What this line looks like with stashed changes 

检索隐藏的更改

要从存储中检索更改并将其应用到您当前的分支,您有两个选择:

  1. git stash apply STASH-NAME应用更改并在存储中git stash apply STASH-NAME副本
  2. git stash pop STASH-NAME应用更改并从存储中删除文件

应用更改时可能会发生冲突。您可以解决类似于合并的冲突( 有关详细信息请参阅Git merge )。

删除隐藏的更改

如果要在不应用它们的情况下删除隐藏的更改,请运行以下命令:

git stash drop STASH-NAME 

要清除整个存储,请运行以下命令:

git stash clear 

更多信息: