Git stash: 一些硬核使用技巧

Git stash :)

假如你现已运用Git有一段时间了, 你或许现已运用过Git stash. 它是Git的实用功能之一.

下面是我学到的一些关于Git stash的实用技巧, 我将与你们共享一下.

  1. Git stash save
  2. Git stash list
  3. Git stash apply
  4. Git stash pop
  5. Git stash show
  6. Git stash branch
  7. Git stash clear
  8. Git stash drop

Git stash save

该指令与Git stash类似. 但该指令有多种选项. 我将在这篇文章中评论一些重要的选项.

带有message的Git stash

git stash save “Your stash message”.

上面的指令是带有message的stash. 咱们稍后会看到这有什么用.

stash未被追踪的文件

你也能够stash未被追踪的文件.

git stash save -uorgit stash save --include-untracked

Git stash list

在评论这条指令之前, 让我先介绍一下stash的作业原理.

当你运用Git stash或Git stash save时, Git实际上会用一些名字创建一个Git提交对象, 并将其保存在你的repo中.

这意味着你能够随时检查你的stash列表:

git stash list

请看下面的比如:

Git stash: 一些硬核使用技巧

git stash list示例

您能够看到已创建的stash列表. 最新的stash在最上面.

你还能看到最上面的stash被赋予了一条自定义信息(通过Git stash save “message”).

Git stash apply

该指令选取库房中最顶层的stash, 并将其运用到库房中. 在咱们的比如中, 它是 stash@{0}.

假如你想运用其他存储库, 能够指定stash的id.

下面是一个比如:

git stash apply stash@{1}

Git stash pop

这条指令与stash apply非常相似, 但它会在运用后从库房中删去栈顶的stash.

下面是一个比如:

Git stash: 一些硬核使用技巧

Git stash pop示例

正如你所看到的, 顶部的stash被删去, **stash@{0}**被更新为旧的stash.

相同, 假如想弹出某个特定的stash, 也能够指定stash的id:

git stash pop stash@{1}

Git stash show

此指令显示stash差异的摘要. 上面的指令只考虑最新的stash.

下面是一个比如:

Git stash: 一些硬核使用技巧

Git stash show示例

假如想检查完好的差异, 能够运用:

git stash show -p

与其他指令类似, 你也能够指定stash的id来获取差异摘要.

git stash show stash@{1}

Git stash branch

这条指令会用最新的stash创建一个新分支, 然后删去最新的stash(就像stash pop一样).

假如需要特定的stash, 能够指定stash的id:

git stash branch <name> stash@{1}

当你把stash运用到最新版本的分支后, 遇到抵触时, 这个方法会很有用.

Git stash clear

这条指令会删去库房中的一切stash. 或许无法还原.

Git stash drop

该指令会从库房中删去最新的stash. 但请谨慎运用, 由于或许难以康复.

你也能够指定stash的id:

git stash drop stash@{1}

希望你能学到一些关于Git stash的有用技巧.

假如你喜欢这篇文章, 请点赞, 收藏并共享它 :) :)