团队开发时,使用 Git ,有时需要仅提交部分文件,或者仅保存部分文件
1 - 常规使用
git stash push 命令用于将当前工作区的修改贮存起来,方便拉取最新代码合并,或者用于仅需提交部分代码,或者编译部分文件修改用于定位问题。
git stash [push]
push 通常可以省略,即
git stash
stash 的命令包括
usage: git stash list [<options>]
or: git stash show [<options>] [<stash>]
or: git stash drop [-q|--quiet] [<stash>]
or: git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
or: git stash branch <branchname> [<stash>]
or: git stash clear
or: git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
[-u|--include-untracked] [-a|--all] [-m|--message <message>]
[--pathspec-from-file=<file> [--pathspec-file-nul]]
[--] [<pathspec>...]]
or: git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
[-u|--include-untracked] [-a|--all] [<message>]
常用为
- 显示所有的贮存列表
git stash list
- 应用最后一条贮存但不弹出
git stash apply
- 弹出并应用最后一条贮存
git stash pop
- 清空所有贮存
git stash clear
2 - 贮存部分修改
关于贮存部分文件的修改有两种办法
git stash push <pathspec>
可以用具体文件名代替,或者正则表达式代替
- 一种为一个文件一个文件的贮存(注:较新的版本支持一个文件一个文件贮存)
例如要压入一个具体文件的则使用git stash push ./src/libs/common/stringtools.cpp
- 另一种可以贮存符合某个正则表达式的路径下的一系列文件
例如要贮存所有 libs 下的 cpp 源文件修改则可使用git stash push ./src/libs/*.cpp
参考链接:
- Git 官网中文操作文档
https://git-scm.com/book/zh/v2