git stash 的一些使用技巧

456 阅读2分钟

git stash 的一些使用技巧

git stash save

git stash 类似,但是可以携带一些参数。

git stash with message

git stash save “Your stash message”.

stash 的时候携带一些 messgage 信息,可以方便标识 stash 的内容是做了什么修改。

stashing untracked files

默认情况下,git stash会缓存下列文件:

  • 添加到暂存区的修改(staged changes)
  • Git跟踪的但并未添加到暂存区的修改(unstaged changes) 但不会缓存一下文件:
  • 在工作目录中新的文件(untracked files)
  • 被忽略的文件(ignored files)

stash 未被跟踪的文件

git stash save -u
or
git stash save --include-untracked

git stash list

当使用 git stash 或 git stash save 时,Git 实际上会创建一个具有某个名称的 Git Commit 保存在 Repo 中。可以通过 以下命令查看 stash 的一些记录。

git stash list

image.png 可以查看到所 stash 的记录,最新的 stash 位于最上面。在 stash 的时候可以通过使用 git stash save “Your stash message” 为 stash 添加一些 message 信息。

git stash apply

将 stash list 中最近的一次 stash 应用到 repo。 也可以在 apply 的时候携带 stash 的 ID

git stash apply stash@{1}

git stash pop

git stash apply 非常相似,但是会在 apply 之后从 stash list 中删除。

image.png

同样可以指定 stash ID。

git stash pop stash@{1}

git stash show

此命令显示 Stash Diff 的摘要。默认只显示最近的一个 stash。

image.png

如果想看到完整的差异,可以使用

git stash show -p

也可以指定 stash ID。

git stash show stash@{1}

git stash branch

应用最近的一次 stash 创建一个新的分支,然后删除该 stash。 可以指定Stash ID。

git stash branch <name> stash@{1}

git stash clear

删除 repo 中的所有 stash。

git stash drop

删除最近的一个 stash。 同样可以指定Stash ID。

git stash drop stash@{1}

原文链接:Useful tricks you might not know about Git stash