git|git stash (pycharm/vscode的gui演示)

git stash (pycharm/vscode的gui演示) 场景

  1. 代码刚写到一半,发现线上bug需要马上修改部署上线
  2. 此时手头的代码写一半,提交根本跑不动甚至影响原来的业务了
  3. 回滚就白瞎搬了好几小时的砖了
好的实践(git分支管理比较规范时)
  1. 每个功能或bug修复都从主干创建一个分支
  2. 开发完成后合并回主干
  3. 遇到上述情况时,当前分支代码保存本地(开发当前功能是从主干拉取的)
  4. 从主干重新拉取一个分支修改后合并
  5. 切换回开发到一半的分支继续开发
当项目很小,参与人员1-2人时,维护分支较为繁琐,只在一个分支上开发时
  1. 使用git stash暂存(未提交的代码放在暂存区中)
  2. 修复bug,部署上线
  3. 使用git unstash从暂存区中取出未完成代码,继续开发
  • 以下结合pycharm和vscode的gui操作演示
pycharm
  1. 暂存当前未提交代码
点击"Git">"Uncommitted Changes">"Stash Changes..."
git|git stash (pycharm/vscode的gui演示)
文章图片

  1. Message中填入信息(用于还原选择),点击"Create Stash",就可以看到刚写的代码没掉了
git|git stash (pycharm/vscode的gui演示)
文章图片

  1. 在当前分支修改代码,然后提交
  2. 重新获取暂存代码
【git|git stash (pycharm/vscode的gui演示)】点击"Git">"Uncommitted Changes">"Unstash Changes..."
git|git stash (pycharm/vscode的gui演示)
文章图片

  1. 选择对应暂存记录,点击"Apply Stash"即可还原代码
git|git stash (pycharm/vscode的gui演示)
文章图片

vscode
  1. 暂存当前未提交代码
点击"Git"图标 > 提交界面右上角的"..." > "Stash" > "Stash"
git|git stash (pycharm/vscode的gui演示)
文章图片

  1. 在弹窗中填入暂存名称后回车
git|git stash (pycharm/vscode的gui演示)
文章图片

  1. 在当前分支修改代码,然后提交
  2. 重新获取暂存代码
点击"Git"图标 > 提交界面右上角的"..." > "Stash" > "Apply Stash"/"Pop Stash"
区别就是Pop会删除记录,Apply不删除,Latest是最后一次,带"..."就会弹窗选择一个
git|git stash (pycharm/vscode的gui演示)
文章图片

    推荐阅读