git stash

291 阅读1分钟

在日常开发过程中,当我们正在某个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}