一分钟学git stash

在使用git管理代码时会经常使用到git stash这个命令,一分钟复习一下。
一般什么情况下会用stash呢?当前修改还没完成,或者暂时不想commit,然而需要做pullmerge或者checkout到其他分支的操作,一般会用stash将修改暂时储藏。
接下来我们复习一些stash的三板斧,增、删、恢复。

  • 增加储藏
    任何时候想要stash当前的修改,只需要用git stash命令,git会按栈的方式按先后顺序记录。

    1
    2
    3
    git stash
    # save -a 增加助记message
    git stash save -a "message"
  • 查看储藏
    查看储藏使用git stash list命令,所有储藏按先后顺序出现,stash@{0}表示最近一次储藏。

    1
    2
    3
    4
    git stash list
    stash@{0}: WIP on master: 049d078 added the index file
    stash@{1}: WIP on master: c264051 Revert "added file_size"
    stash@{2}: WIP on master: 21d80a5 added number to log
  • 应用储藏
    将储藏重新应用有两种方式,git stash popgit stash apply,pop应用后会将储藏删除,而apply不会删除。另外,stash操作是不随分支的,无论在哪个分支的stash,都可以应用到任何分支

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 默认apply最近的一次stash
    git stash apply
    # apply 以前的stash
    git stash apply stash@{2}
    默认pop最近的一次stash
    git stash pop
    # pop以前的stash
    git stash pop stash@{2}
    # pop 之后会删除
  • 撤回储藏
    有时候应用储藏后,会有撤回的需求,比如你正在修改文件,然后apply了一个储存,之后又不想要储存里apply的修改了,可以运用撤回来清除这个储藏。

    1
    2
    3
    git stash show -p stash@{0} | git apply -R
    # 如果没有指定则会撤回最近的储藏
    git stash show -p | git apply -R
  • 删除储藏
    用apply应用的储藏是不会删除的,需要手工删除,可以通过drop来做,可以指定stash,也可以clear全部删除(慎用)

    1
    2
    3
    git stash drop stash@{0}
    # 全部删除
    git stash drop clear
  • 从储藏创建分支
    有时候一些修改希望单独出一个分支来继续改进,那么可以将这个stash直接checkout成一个单独的分支。

    1
    git stash branch testchanges

    OK,git stash就这三板斧,记起来了吗?

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

小小鼓励一下~

支付宝
微信