git stash 部分文件

开发过程中经常会需要stash(贮藏)部分文件的场景,无奈sourcetree并不支持这种操作, gitkraken神器是可以的,但是现在收费了。所以只能自己动手命令行搞起来了。

参考了一下官方文档:
git stash命令有如下用法

git stash list [<options>]
git stash show [<stash>]
git stash drop [-q|--quiet] [<stash>]
git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
git stash branch <branchname> [<stash>]
git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
	     [-u|--include-untracked] [-a|--all] [-m|--message <message>]
	     [--] [<pathspec>…​]]
git stash clear
git stash create [<message>]
git stash store [-m|--message <message>] [-q|--quiet] <commit>

可以看到我们最常用的

git stash

其实是

git stash push

的缩写。不过要使用这些参数的话就不能缩写了,比如你想指定一个stash的说明,你可能会这样:

git stash -m "this is a test"

但是这样是不行的,你必须要:

git stash push -m "this is a test"

可以看到push这个命令有最复杂的参数,简单说明下:

  • -p|–patch
    交互式stash,每个修改逐个确认,之后不停按y/n来选择要stash的修改

  • -k|–[no-]keep-index
    已经git add的文件stash之后修改还保留

  • -q|–quiet

  • -u|–include-untracked
    新创建的文件直接git stash是不会被stash的,加上这个就可以

  • -a|–all
    比上一个-u更强,连被git ignore的文件都可以stash

  • -m|–message <message>
    指定一些说明性文字

  • [--] [<pathspec>…​]
    指定stash的文件,但是如果其他文件有被git add过,也会被同时stash。不过只有指定的文件的修改会从工作副本中clean掉。

那么stash部分文件就有两种方式

  1. 使用-p进行交互式操作(适合需要具体到修改的时候,例如某个文件中部分需要stash部分不需要)

  2. 通过在命令后面直接指定文件(一般情况肯定这个方便)

# 指定说明信息并stash所有java文件的修改
$ git stash push -m "this is a partly stash test" **/*.java
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值