在日常开发过程中,当我们正在某个develop分支开发的时候,接到了其他优先级高于当前的开发的需求,需要重新切分支进行开发。为了保留当前develop分支的修改,就需要用到git stash
git stash
暂存当前分支的修改
git stash save [meassage]
- 暂存当前分支的修改并添加描述文字
- eg:
git stash save 'develop分支,正在开发视频直播业务' - 推荐使用这个
git stash list
-
list 当前暂存区有多少stash,用于指定 pop 哪次 stash
-
注意这个是跨分支,即所有分支的stash 都会保存到当前
git stash list中 -
eg:
git stash list
stash@{0} : On develop: develop分支,正在开发视频直播业务
stash@{1} : On bugfix: bugfix分支,正在修复直播页面弹幕不准确bug
stash@{2} : On feature/upload: feature/upload分支,正在开发图片上传功能
git stash pop stash@{num}
- 根据上面
git stash list取出暂存区对应的 stash - 当pop对应的stash@{num} 后,stash list中对应的stash@{num} 就被删了
- eg: 需要先切到对应分支,再进行 pop 操作
git stash pop stash@{0}
git stash apply stash@{num}
- 和 git stash pop 功能一样
- 不同的是 apply 操作不会删除 stash list中对应的stash@{num}
git stash drop stash@{num}
- 删除stash list中某个stash@{num},num通过git stash list可查看具体值
git stash clear
- 删除stash list中所有的stash
注意:git stash 操作是跨分支的,即所有分支的stash 操作都会放在同一个stash list中,所以推荐使用
git stash save [meassage]和git stash pop stash@{num}