乐趣区

关于git:Git不暂存提交代码也能切换到别的分支vs-code搭配GitLens-Git-supercharged看效果

问题形容

假如有这样一个场景需要:

  • 某一天,咱们正在本人的开发分支上欢快的写代码
  • 忽然 产品强人 找到咱们,说客户要求在生产环境上给首页加上一个暗影,难看一些
  • 要立即,马上加!
  • 然而咱们本人的开发分支上代码还没有开发完
  • 咱们不想去git add ./git commit -m 'xxx'(不想去减少提交记录)
  • 然而咱们如果间接切换到生产分支,当下还没有写完的代码就会被 overwritten(容易失落当下还没写完的代码)
  • 此时,git stash命令就闪亮退场啦 …

操作演示步骤

  • 咱们晓得 Git 是命令行代码工具,用于治理咱们的开发代码
  • 基于这个底层工具,一些大佬研发出一些可视化的 Git 治理插件(如在vscode 中应用)
  • 笔者的习惯是应用命令行 Git 操作,搭配 GitLens — Git supercharged 可视化 Git 插件
  • 上面笔者将在 vscode 编辑器中,联合 GitLens — Git supercharged 插件去演示场景需要

下载 GitLens — Git supercharged 插件

笔者也举荐大家应用这个可视化 Git 工具,尽管不怎么用这个可视化工具操作代码,不过用于看本人提交的代码操作,还是比拟直观的。

vscode 拓展下载

下载胜利

演示操作图解

假如有两个分支,git branch查看一下

咱们当下在 dev 分支欢快地写代码呢

// 原来代码
console.log('我是开发分支')
console.log('我是开发分支')
console.log('我是开发分支')

// 写了一半,写成了
console.log('欢快地写代码')
console.log('欢快地写代码')
console.log('欢快地写代码')

当咱们想要间接切换分支时,git会有对应谬误正告,因为代码还没 add 还没 commit

error: Your local changes to the following files would be overwritten by checkout:
        home.js
Please commit your changes or stash them before you switch branches.
Aborting
/*
谬误:切换分支时将笼罩对以下文件的本地更改:home.js
请在切换分支之前提交更改或将其暗藏。正在停止
*/ 

大家看到了吧,实际上 Git 曾经对咱们进行提醒了,不要间接切换分支,否则就给你写的代码笼罩掉。当然你能够 add commit 当前再切换,或者执行 stash 相干命令将其暗藏。

咱们能够执行命令 git stash save "正文" 将写了一半的代码暗藏起来,如下图:

也能够看 STASHES 中的详情

而后能够执行 git status 查看状态,发现工作树洁净了,能够切换分支了

而后咱们 git checkout master,进行主分支代码批改,操作结束当前,再切回dev 分支 上,再执行 git stash pop 命令,将咱们刚刚暗藏在 STASHES 中的批改代码再 弹出来 即可持续欢快地写代码啦 …,如下图:

git stash 代码总结

将未写完的代码,暗藏到暗藏区,倡议应用第一条,能够加一点正文,以便于回过头来查看(尽管二者是一个意思)

  • git stash save "正文"(保留加正文暗藏)
  • git stash(保留不加正文暗藏)

将暗藏区的代码取出来,复原原样,倡议应用第一条,取出即删除,不会产生冗余代码(相当于只有一份,丢进去,再拿进去);第二条相当于复制一份拿进去

  • git stash pop(取出并删除 STASHES 中的暗藏内容)
  • git stash apply(取出不删除 STASHES 中的暗藏内容)

再搭配 GitLens Git supercharged 插件可视化看成果,能够解决 99% 的代码未写完须要切换分支的需要。实际上 git-stash 能够命令也是十分多的,上述文章根本够用了,不够用的话咱们再去看官网文档

官网文档地址:https://git-scm.com/docs/git-…

退出移动版