VS Code Git 神器:内置功能与GitLens插件使用技巧

作为一名前端开发者,我们每天都要与代码版本控制打交道。Git虽然功能强大,但手敲命令行较为麻烦。而VS Code提供了强大的内置Git功能和增强插件,让我们能够通过直观的可视化界面完成绝大多数Git操作,在团队协作开发下,提升开发效率。本文主要介绍工作中常见场景下的一些git操作。

1. 基本用法

1.1 主要功能区

1.2 Git 执行日志可以从输出->git 中查看

通过这个可以看到交互方式具体执行的命令。可以在与自己预期不符情况下,进行check。

具体操作参考:

2. 落后提交时,git使用技巧

落后提交两种情况:

  • 自己分支合入主分支后,此分支落后提交
  • 自己从主分支拉取分支后,同事往主分支合入了代码,此时落后提交

此时,需要在当前分支加入最新的提交(不管有没有冲突,都建议合入最新分支),两种合并方式:

  • rebase:(个人分支开发时,推荐用法,保持分支记录干净)

两步可视化操作: git fetch origin + git rebase origin/master

  1. git fetch origin :先获取最新的远程提交 2. git rebase origin/master

对应可视化操作:

但该可视化操作,并不会自动执行git stash。在有工作区文件修改时,不太方便,此时只能手动执行stash。 要么添加--autostash参数:git rebase origin/master --autostash,要么git stash +git rebase origin/master + git stash pop

--autostash: 先执行git stash,若git rebase 执行完,再git stash pop,注意,如果有冲突,不会git stash pop,可从stash区手动pop

  • Merge :git pull origin master (git pull = git fetch + git merge)

git merge/ git rebase区别

3. fork模式下的分支开发技巧

开源项目和公司里,有时会不允许在代码仓里建新分支,而是fork仓里建分支来进行合并提交

步骤:

  • 添加fork仓的源(可命名为fork,区别于origin)
  • 基于源代码仓的主干分支,创建本地主干分支(这一步是为了同步原仓的修改,若从fork仓进行同步,会有多余操作,比较麻烦)
  • 开发时,基于本地主分支,创建开发分支。推送时,选择推送到fork仓。

可以看到此时未关联远程分支。

  • 当主分支更新时,本地开发分支落后提交,同样采用rebase 合并。(与前面一样的操作)

4. 回退操作。

用于遗漏提交或误写的场景,避免这些提交记录影响代码的提交历史,也是很常用的

4.1 回退工作区文件

4.2 回退已暂存文件到工作区

4.3 回退最新提交到暂存区

撤回提交,到暂存区,可以连续撤销。

对应代码git reset --soft HEAD~

注意:只能撤销最新的提交,如果需要撤销多次提交,可以连续操作,或者使用命令

写在最后,vscode git 看起来功能很多,但是并不复杂,熟能生巧。可以新建个练习git的仓库进行练习。熟练之后,开发精力就不会被消耗在分支使用上了!

相关推荐
m0_579146651 小时前
已被 Git 追踪的本地修改文件如何实现临时忽略
git
糖少主3 小时前
WSL中使用Beyond Compare 3/4/5作为difftool
git·wsl·beyond compare·difftool
console.log('npc')6 小时前
Git版本管控:git reset \+ git push \-f 原理、实操与避坑指南
git
Jurio.7 小时前
开源 Codex Sticky:在终端 Codex CLI 长对话中始终固定底部输入框
linux·rust·github·开源软件·codex·codex cli
半夜修仙8 小时前
RabbitMQ中如何保证消息的可靠性传输
java·分布式·中间件·rabbitmq·github·java-rabbitmq
旅之灵夫9 小时前
【GitHub项目推荐--Harness:一体化的开源 DevOps 平台】⭐
github
恋喵大鲤鱼10 小时前
git reflog
git·git reflog
虾壳云智能11 小时前
详解 OpenClaw 部署难点 绕过安全拦截与路径报错解决方案
人工智能·github·open claw教程·open claw一键部署
_codemonster12 小时前
Codex中github cli未通过身份验证解决方法
github
MatrixOrigin12 小时前
MatrixOne Git4Data 技术详解(二):从零跑通所有 Git 原语
git