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..."

  1. Message中填入信息(用于还原选择),点击"Create Stash",就可以看到刚写的代码没掉了

  1. 在当前分支修改代码,然后提交

  2. 重新获取暂存代码

点击"Git">"Uncommitted Changes">"Unstash Changes..."

  1. 选择对应暂存记录,点击"Apply Stash"即可还原代码

vscode

  1. 暂存当前未提交代码

点击"Git"图标 > 提交界面右上角的"..." > "Stash" > "Stash"

  1. 在弹窗中填入暂存名称后回车

  1. 在当前分支修改代码,然后提交

  2. 重新获取暂存代码

点击"Git"图标 > 提交界面右上角的"..." > "Stash" > "Apply Stash"/"Pop Stash"

区别就是Pop会删除记录,Apply不删除,Latest是最后一次,带"..."就会弹窗选择一个

git stash (pycharm/vscode的gui演示)的更多相关文章

  1. Git for PyCharm

    Git for PyCharm Using PyCharm's Git integration locally:http://confluence.jetbrains.com/display/PYH/ ...

  2. Git综合使用命令行和gui工具小结

    使用Git的时候,综合使用命令行和gui工具,可以把Git用的最舒服,因此这里总结下使用gui和命令行的一些对应操作, gui中拉取:git pull origin dev_branch gui中推送 ...

  3. git stash命令详解

    git stash命令用于将更改储藏在脏工作目录中. 使用语法 git stash list [<options>] git stash show [<stash>] git ...

  4. Git-命令行-使用 git stash 暂存代码

    为什么我们需要它不得不说,在知道这个命令的时,以及之后的使用中,我都超级热爱这个命令,因为它真的太好用了. 给大家说一下我使用这个命令的场景: 此时我在 feature_666 分支,非常聚精会神加持 ...

  5. Git Stash紧急处理问题,需要切分支

    在开发过程中,大家都遇到过bug,并且有些bug是需要紧急修复的. 当开发人员遇到这样的问题时,首先想到的是我新切一个分支,把它修复了,再合并到master上. 当时问题来了,你当前正在开发的分支上面 ...

  6. git stash 用法

    git stash用于将当前工作区的修改暂存起来,就像堆栈一样,可以随时将某一次缓存的修改再重新应用到当前工作区. 一旦用好了这个命令,会极大提高工作效率.   直接举例说明: 1.准备工作,首先初始 ...

  7. git stash和git stash pop

    git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug,  先stash, 使返回到自己上一个comm ...

  8. git stash -u 添加新文件

    git 提交 有新文件执行    git stash -u ------ 如果已经执行git stash,会发现有UNtracked这个单词 说明新文件没有添加进去,此时 执行  git stash ...

  9. 每天一命令 git stash

    git stash  命令是用于保存当前进度的命令.该命令会保存当前工作区的改动.保存的改动是已经跟踪的文件的改动,对于未跟踪的改动stash是不会保存的. git stash 命令常用于分支切换的 ...

  10. git stash提交PR的正确步骤&git squash技术

    1.git stash梳理 1.1git stash的克隆与同步 首先整理下git stash的逻辑是这样 在本地做出了新的修改,提交时显示当前的版本不是最新版本,这时就需要先pull一下自己代码仓库 ...

随机推荐

  1. Ubuntu 添加新用户并制定目录和shell

    Ubuntu 添加新用户并制定目录和shell 分类: LINUX 2011-07-07 15:22:54   ubuntu新建的用户并没有新建相应的home目录和对应的shell环境.  下面就总结 ...

  2. ts get和set

    class User { // get.set方法的成员变量命名时建议在前面加 _ private _fullName: string; //get 的用法 get fullName(): strin ...

  3. sql常用系统存储过程

    -- 更详细的介结参考联机帮助文档 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig - ...

  4. T137233 魔术增幅

    设答案为$g$,那么肯定有$g\mid M$. 再设$M=\sum\limits_{i=1}^N a_i=g\times \sum\limits_{i=1}^N t_i$. 因为$t_i$都是正整数, ...

  5. com.mysql.cj.jdbc.exceptions.CommunicationsException

    mysql数据库链接空闲一段时间后就会关闭连接,但是我们的java程序依然持有该连接的引用,对已经关闭的数据库连接进行操作就会引发上述异常. 解决办法: 1.增大mysql数据库的wait_timeo ...

  6. .NET Core读写InfluxDB时序数据库的方法教程

    前言 在我们很多应用中会遇到有一种基于一系列时间的数据需要处理,通过时间的顺序可以将这些数据点连成线,再通过数据统计后可以做成多纬度的报表,也可通过机器学习来实现数据的预测告警.而时序数据库就是用于存 ...

  7. mqtt抓包

      mqtt消息抓包 账号.密码.imappclientId 或者imwebclientId校验成功后跟imserver连接成功 部分交互:先获取到uid,再根据uid拿到其他用户信息,且部分信息通过 ...

  8. idea主题插件 ->Atom Material File Icons

    Atom Material File Icons    插件名

  9. Android GNSS模块详解

    1. 参考https://blog.csdn.net/yang_mao_shan/category_12133410.html GNSS 架构是从 应用层 ---> 通过原生 jar 包 --- ...

  10. 数据仓库服务 GaussDB(DWS)

    官网:总体介绍 https://support.huaweicloud.com/dws/index.html 部分源码解读 https://my.oschina.net/gaussdb?tab=new ...