关于 Git 储藏工具的小知识分享

前言

这篇博客目测对不用 git 命令行的同窗可能帮助不大。可是笔者本人长期使用 git 中开发维护项目。仍是感受命令行十分便利。所以,如下呢其实是个人笔记~git

咱们假设,当咱们正在进行项目中某一部分的工做开发,里面的东西处于一个比较杂乱的状态,此时咱们须要切换分支,可是此时咱们并不想提交正在进行一半的的工做内容。此时怎么办呢?bash

此时解决这个问题的办法就是使用 git stash 命令。app

基础使用

储藏变动ui

$ git stash

Saved working directory and index state WIP on master: 39a3ecf init
复制代码

查看全部储藏spa

$ git stash list

stash@{0}: WIP on master: 39a3ecf init
复制代码

备注: WIP 其实就是 Work In Progress 的缩写。命令行

查看某个储藏的内容code

$ git stash show stash@{0}
复制代码

应用最近的一个储藏索引

$ git stash apply
复制代码

应用指定的一个储藏开发

$ git stash apply stash@{0}
复制代码

起个名字

咱们会发现以上 git 默认给的索引名字并不友好,时间久了说不定咱们就忘了这个储藏是什么内容了。文档

$ git stash save "WIP: I name stash, yeah"
复制代码

这时候咱们再查看储藏列表

$ git stash list

stash@{0}: On master: WIP: I name stash, yeah
stash@{1}: WIP on master: 39a3ecf init
复制代码

会发现提示内容的确友好不少了~

存储未追踪的文件

通常来讲,好比咱们新增了 b.txt,git stash 是不会进行储藏的。

$ git status

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	b.txt

nothing added to commit but untracked files present (use "git add" to track)
复制代码

尝试储藏,发现毫无反应!

$ git stash

No local changes to save
复制代码

可是咱们只要加上 --include-untracked 标识符便可

$ git stash --include-untracked
复制代码

或者简写以下:

$ git stash -u
复制代码

应用与清理

清除最近的储藏同时并应用(应用储藏,同时马上将该储藏从堆栈中移走),通常比较经常使用这个命令,但若是不想清除该储藏,可使用上述提过的 git stash apply 命令。

$ git stash pop
复制代码

清除最近的储藏

$ git stash drop
复制代码

清除第 n 个储藏

$ git stash drop stash@{n}
复制代码

清除全部储藏

$ git stash clear
复制代码

从储藏中建立分支

使用方法:git stash branch <branchname> [<stash>]

这个命令会建立一个新的分支,检出你储藏工做时的所处的提交,从新应用你的工做,若是成功,将会丢弃储藏。

$ git stash branch example
复制代码

这个命令至关实用!能够恢复储藏的工做而后在新的分支上继续当时的工做。

小结

最后若是困惑,可查阅官方文档或者手动敲入如下命令~

$ git stash --help
复制代码

以上,对你们若有助益,不胜荣幸~

相关文章
相关标签/搜索