Git 的 临时改动管理可以依赖 Stash 方法。
简介 {#简介}
在同一个 git 管理仓库下,当然直接使用 git 的常用命令可以很好地和其他开发者共享工作,当开发者不处在同一个版本管理平台下,或仅作临时修改时,则可以通过 git stash 暂存当前改动的方式临时保存代码
常用git stash命令 {#常用git-stash命令}
git stash {#git-stash}
该命令将当前改动压栈保存
注意:改动指真正的改动,untarck 文件不属于改动,没有加入 git 管理,不会被压栈
支持参数 save "save message"
,可以添加备注,方便后续查找
压栈后临时记录会以栈的顺序保存起来
git stash list {#git-stash-list}
查看stash了哪些存储
git stash show {#git-stash-show}
显示做了哪些改动,该命令默认显示改动文件和代码改动量,默认show第一个存储,如果要显示其他存储,后面加stash@{$num}
比如第二个
git stash show stash@{1}
可以加 -p
显示改动内容: git stash show -p
git stash apply {#git-stash-apply}
应用某个存储,但不会把存储从存储列表中删除
默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num}
比如第二个:git stash apply stash@{1}
git stash pop {#git-stash-pop}
命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下
默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num}
比如应用并删除第二个:git stash pop stash@{1}
git stash drop {#git-stash-drop}
stash@{$num}
:丢弃 stash@{num}
存储,从列表中删除这个存储
在 Windows Power Shell 中肯能会报错:
这种问题是因为VSCode中,花括号在 PowerShell 中被认为是代码块执行标识符,若想正常使用,可用反引号 `` ` 进行转义:
git stash branch {#git-stash-branch}
从最新的 stash 中创建分支
git stash clear {#git-stash-clear}
清除堆栈中的所有内容
小妙招 {#小妙招}
常规 git stash 的一个限制是它会一下暂存所有的文件。有时,只备份某些文件更为方便,让另外一些与代码库保持一致。一个非常有用的技巧,用来备份部分文件:
- add 那些你不想备份的文件(例如: git add file1.js, file2.js)
- 调用 git stash --keep-index。只会备份那些没有被add的文件。
- 调用 git reset 取消已经add的文件的备份,继续自己的工作。
参考资料 {#参考资料}
文章链接:
https://www.zywvvd.com/notes/tools/git/git-stash/git-stash/