git stash命令

当你想要保存当前的暂存区和工作区的状态的时候,你可以使用git stash命令。比如:你正在开发一个新功能,写了一些代码(保存暂存的和没有暂存的或没有记录的),现在需要去修复一个紧急bug,你又不想提交,这时你可以选择保存当前工作区和暂存区的内容,需要的时候恢复。

这个命令会保存当前的暂存区和工作区的状态,然后返回到HEAD(git reset —hard HEAD)。最新的stach可以在.git/refs/stash中看到。

git stash save

save [-p|—patch] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|—all] [-q|—quiet] [message]

[ ]代表这个参数是可选的

-k|--keep-index 表示 stash之后,所有对暂存区的改变会维持不变(比如你之前add 了一个file,提交之后,git status还是能够在暂存区看到你的 add),如果是—no-keep-index的话,stash之后的状态就是git reset —hard HEAD。

-p|—patch 不太了解,只知道用了会开启一个交互式的界面让你选择

-u|--include-untracked 会把没有记录到的文件也保存下来(比如你新建了一个文件,但是还没有git add,stash也会把这个文件保存下来)

-a|—all 会把忽略的文件也保存下来(.gitignore中的)

-q|—quiet 终端不打印输出

message 一个对这个stash的描述,如果执行git stash list,我们能够看到这个描述

git stash list

list [options]

不加options,会列出所有的stash,你也可以指定某个stash(stash@{0}代表最近的stash)

git stash show [stash]

显示和他parent的差异

git stash pop

pop [—index] [-q|—quiet] [stash]

与git stash save执行相反的操作,从stash list中移除这个stash,恢复工作区

—index 如果指定了这个参数,那么不仅恢复工作区,也会恢复暂存区

git stash apply

apply [—index] [-q|—quiet] [stash]

和pop类似,区别在于apply不会吧stash从stash list中移除

git stash branch

branch [branchname] [stash]

以这个stash被创建的那个commit为起点,创建一个叫branchname的分支,然后再在这个分支执行git stash pop —index stash

git stash clear

清空当前所有的stash

git stash create

创建一个stash,并返回他的commit对象,但并不在refs中存储这个对象

git stash store

存储通过create创建的stash。(可以在refs的stash和log/refs下看到这个stash)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,557评论 1 26
  • git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外...
    Speronie阅读 340评论 0 0
  • 元认知简单的说是think about your own thinking,就好比说大脑A之外还有一个大脑B,B在...
    行动君阅读 701评论 0 1
  • 房子很快就分了下来,是一套两居室,60多平米。文欣和大鹏都很高兴,他们有了自己的小家啦! 两个人规划憧憬着如何装修...
    圆洲绿阅读 270评论 0 1
  • 今天从医院到学校,花了两个小时,非常有价值的两小时。 5点半就从医院出发了,天上下着雨,我还是决定步行去地铁站。昨...
    顾鸣芬阅读 589评论 0 1