alias 相关配置

➜  gridea git:(master) ag gst
gst='git status'
gsta='git stash push'
gstaa='git stash apply'
gstall='git stash --all'
gstc='git stash clear'
gstd='git stash drop'
gstl='git stash list'
gstp='git stash pop'
gsts='git stash save'
gstss='git stash show --text'
gstu='git stash --include-untracked'

以上是我的 git stash 相关的 alias 配置,包括 zsh 自带的配置以及自己在.bashrc 里面的自定义配置,如何配置这里就不展开讲了。

下面介绍一下我们常用的几条 stash 命令:

(这里就直接用设置的快捷命令了)

  • gstc 清空栈

  • gsta 将本地修改的代码推到栈内

    ➜  gridea git:(master) ✗ ga .
    ➜  gridea git:(master) ✗ gsta
    Saved working directory and index state WIP on master: abe8de5 docs: update changelog
    
  • gstl 查看栈

    image-20200722163219458
  • gstsgsta 的基础上可以自定义备注

    ➜  gridea git:(master) ✗ ga .
    ➜  gridea git:(master) ✗ gsts "save 2222"
    Saved working directory and index state On master: save 2222
    
    image-20200722164230962
    • 相比第一次提交,加了备注的提交更清晰
    • 同时根据序列号也可以看出,stash 符合 先进先出 的规则
  • 查看某一次提交

    image-20200722170142682

    如上图,目前栈内有三次提交记录。

    gstss 默认查看最近的一次提交,相当于gstss stash@{0}

    如果想针对查看特定的提交,如 "save 2222" 的提交记录,需要在后面加上特定提交的序号gstss stash@{1} ,下面讲到的其他操作也是同理。

    image-20200722172224034
  • 找到某次的提交记录后,需要将提交记录拷贝到本地,有两种方法:

    • gstaa 从栈中拷贝出提交到本地(栈中的记录仍保留)
    image-20200722172942558
    image-20200722173017326
    • gstp 从栈中推出某次提交(推出后,栈中不再留有这次提交记录)

      image-20200722173208224
      image-20200722173231801
  • gstp 操作也可以看出,gstd 其实就是删除栈内特定的提交记录,如删除 stash@{1} 的记录

    ➜  gridea git:(master) ✗ gstd stash@{1}
    Dropped stash@{1} (95485801bdcb11f2e81c916529b447ff4f1da02f)
    
    image-20200722174340839

总结

gst='git status'
gsta='git stash push'	//保存(不加说明)
gsts='git stash save'	//保存(加说明)
gstaa='git stash apply'	//复制某次提交到本地
gstp='git stash pop'	//复制某次提交到本地,并删除栈内记录
gstall='git stash --all'
gstc='git stash clear'	//清空栈
gstd='git stash drop'	//删除栈内某次提交记录
gstl='git stash list'	//查看栈内提交列表
gstss='git stash show --text'	//查看栈内某次提交记录
gstu='git stash --include-untracked'