Git stash: 一些硬核使用技巧
Git stash :)
如果你已经使用Git有一段时间了, 你可能已经使用过Git stash. 它是Git的实用功能之一.
下面是我学到的一些关于Git stash的实用技巧, 我将与你们分享一下.
- Git stash save
- Git stash list
- Git stash apply
- Git stash pop
- Git stash show
- Git stash branch
- Git stash clear
- 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 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 pop示例
正如你所看到的, 顶部的stash被删除, **stash@{0}**被更新为旧的stash.
同样, 如果想弹出某个特定的stash, 也可以指定stash的id:
git stash pop stash@{1}
Git stash show
此命令显示stash差异的摘要. 上面的命令只考虑最新的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的有用技巧.
如果你喜欢这篇文章, 请点赞, 收藏并分享它 :) :)
转载自:https://juejin.cn/post/7270127391476809788