git stash 命令
当我们在dev分支开发时,有时候需要切换到test分支, 这时候又不想commit.
Git提供了一个git stash命令恰好可以完美解决该问题, 其将当前未提交的修改(即,工作区的修改和暂存区的修改)先暂时储藏起来,这样工作区干净了后,就可以切换切换到master分支下拉一个fix分支。在完成线上bug的修复工作后,重新切换到dev分支下通过git stash pop命令将之前储藏的修改取出来,继续进行新功能的开发工作
1.执行下述命令来储藏dev分支下的修改
git stash
实际应用中推荐给每个stash加一个message,用于记录版本,使用git stash save
取代git stash
命令。示例如下:
$ git stash save "test-cmd-stash"
Saved working directory and index state On autoswitch: test-cmd-stash
HEAD 现在位于 296e8d4 remove unnecessary postion reset in onResume function
$ git stash list
stash@{0}: On autoswitch: test-cmd-stash
2.取出最近一次储存的改动
git stash pop可取出最近一次储藏的修改到工作区中,并同时将该储藏从储藏记录列表中删除
git stash pop
前文提到的可以通过git stash pop用于取出最近一次储藏的修改到工作区,而通过查看储藏列表的index的可以取出指定储藏中的修改到工作区
# 取出指定index的储藏的修改到工作区中
git stash apply stash@{index}
# 将指定index的储藏从储藏记录列表中删除
git stash drop stash@{index}
3.查看现有储存的stash
$ 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
4. 移除stash
可以使用git stash drop
命令,后面可以跟着stash名字。下面是一个示例
$ 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 drop stash@{0}
Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)
推荐使用界面操作