当我们正常使用Git切换分支时,会出现以下提示(请在切换分支之前提交您的更改或隐藏它们):
Please commit your changes or stash them before you switch branches.
这是由于你现有分支上有修改还没有commit,而你又选择切换分支,分支切换就会覆盖修改,因此需要commit内容(一般不选择)或者暂存内容:
git stash
使用git stash
后,可以将当前分支存起来,可以看到暂存的id:这里为807be186826
这时候使用git status
查看就会发现已经没有需要提交的了,就可以正常的切换分支了。
可以使用 git stash save "message"
的方式为 stash 起来的变动命名,方便后面再次使用。
git stash list
使用git stash list
可以查看我们“存储”的列表。会发现id 为 807be186826 的储藏项目在列表中。
我们可能需要将其恢复。这里有两个方法:
-
使用**
git stash apply STASH_ID
**命令,该命令stash内容并不删除,这时候再执行git stash list
命令,id为 807be186826 的储藏项目还会在列表中,你需要用git stash drop
来删除;注意:如果有一个分支上多个 stash,如果需要恢复指定的 stash ,可以在命令尾部加id,如 ``git stash apply stash@{0}
,同样删除指定 stash 项目则执行如
git stash drop stash@{1}`。 -
用
git stash pop
命令,恢复的同时把 stash 存储列表的内容也删了。这时候再执行git stash list
命令,id 为 807be186826 的储藏项目不会在列表中。
此时再查看会发现之前的改动还存在,且执行git status
就会继续显示该分支上有改动未提交。
查看暂存的内容:git stash show -p stash@{0}