🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit
前情提要:
写这篇文章的初衷是作为一个Vim键综合症,键盘流爱好者。在日常工作中Vscode使用vscode vim
,浏览器使用surfingkeys
全键盘浏览网页。
不满足于命令行的 git
使用,期待可以全键盘实现git
工作流,于是有了今天的文章。
Emacs
有趣的梗很多譬如,用脚踏板的编辑器,可以煮咖啡,小指是折翼天使等等。
Emacs
因为有陡峭的学习曲线,今天文章不在介绍范围。
介绍:
Magit
是Emacs
的一个扩展模块,官网magit 定义为 “一件 Emacs
内的Git
瓷器”,如此赞美之词当之无愧。对于Emacs
用户来说并不陌生,只需按几个助记键就可以执行简单的以及复杂的版本控制任务。Magit
支持并简化了Git
的使用,既有命令行的炫酷感,却又比任何 GUI
都更快,可以满足想高效又想直观的愿望。
助记方法:
助记 vim
也有很多助记:譬如,w(word)单词开头,b(back)返回,d(delete)删除,y(yank) 复制,p(paste)粘贴
删除一个单词 diw(delete in word)
复制一个单词 yiw (yank in word)
linux
:alias
别名,也是助记 的一种 alias gcl="git clone"
举以上例子只是为了铺垫下面的 magit
助记键位,帮助未接触过vim
键位以及Emacs
键位的人群 --- 譬如文章介绍:
按下b
(代表 Branch
命令)再按下 b
(代表切换分支Checkout
命令)
按下c
(代表 Committing
命令)再按下 c
(代表切换分支Commit
命令)
今天介绍的是
Vscode
上的magit
插件,实现不用 Emacs 也能用到神器magit
edamagit
目前vscode扩展商店版本 edamagitv0.6.24
预览版
因为是面向新手向的教程,笔者也是一个新手,所以下面介绍一下常用的
git
命令,顺便自己做一个巩固,edamagit
虽然简化了个git的操作,但所有操作建议基于于对命令行有一定熟悉程度。
介绍 git
正向工作模式
工作区-----本地的文件,可以理解是桌面的一个放代码的文件譬如C:\Users\ccc\Desktop\project
,工作区有一个隐藏目录.git
,这个不属于工作区,这是版本库
stage
(暂存区)-----git add
后暂存放的地方,
本地仓库-版本库(Repository)-----git commit
开始代码跟踪的地方,可以理解是游戏读档(玩过任天堂口袋妖怪的就知道可以无限读档,无限回档)
远程仓库-----git push
远程仓库的代码管理
命令行操作git
步骤
以下是git
常用命令(配合vscode的gitlens插件可视化查看)
Git 全局设置
git config --global user.name "cc以下示例都在dev分支上做演示c" // ccc为账户名称 git config --global user.email "ccc@qq.com"
初始化,已有的仓库无需初始化(公司的远程仓库已做了初始化)
git init // 把目录变成git可以管理的仓库 (默认是隐藏文件)注意:项目如果已经在远程,不用做初始化
命令行查看状态
git status //查看状态
命令行克隆代码
git clone gitee.com/ccc/ceshi // 克隆代码
命令行创建并切换分支
以下示例都在dev分支上做演示 git checkout -b dev // 新建本地分支dev(vscode左下角会显示切换的分支)
命令行暂存修改
git add . // 添加所有修改到暂存
命令行对比
git diff . // 查看变更内容(建议在vscode中查看代码对比,比命令直观)
命令提交修改
git commit -m '第一次提交' // 提交到本地仓库 “ '写的是修改内容'”
命令记录查询
git log 查看历史提交记录 git log --pretty=format:"%h %s" --graph // 查看历史提交记录格式化并带颜色(更建议使用)
命令行回退修改(后悔药)
git reset --hard commit id // 提交后回退修改 例如:git reset --hard f0872a4
命令行下载远程代码并合并(协作的时候)
git pull origin master // 更新远程代码
注``git pull
等同于git fetch
+git merge
命令行上传代码到远程仓库
git push -u origin dev // 推送到远程dev分支并在远程自动创建dev分支
注意
建议养成上班前git pull 代码(保持本地最新)
下班git push代码的良好习惯 (防止本地代码丢失)
命令行合并代码
假设要合并dev
分支到master
分支
一定要切换master
分支,再把dev
分支合并到master
上
git checkout master // 切换到master git merge dev // 合并dev代码到master
附上git
命令速查表
此图来源于网络,侵权删
edamagit
操作git步骤
注意不用背快捷键, 按了快捷键组合 Alt + x g (git status) 会有提示。vscode
ctrl + 1,ctrl + 2可以切换窗口
edamagit
快捷键启动方式
注
意按下 Alt + x
松手 再按一下 g
Alt + x g Magit Status 查看项目的当前状态 (等同于 git status) 按下
Alt + x
vscode底部会提示已经按下,这时再按g
注
意按下 Alt + x
松手 再按一下Alt + g
Alt + x Alt + g Magit File Popup 弹窗
注
按下Alt + x
松手 再按一下ctrl + g
Alt + x ctrl + g Magit Dispatch 查看快捷键位
edamagit
切换分支(以下都在dev分支上做演示)
注
以下 - 符号间隔开 表示按一下 字母松手
再按下字母,示例b - c
按 b
松手按 c
b-c new Branch 创建本地新的分支并切换 (等同于 git checkout -b dev)
b-b Checkout 检出到创建的分支 (等同于 git checkout dev)
edamagit
暂存修改
s
将添加光标处文件的修改.
大写 S Stage all 等同于 git add . // 暂存全部修改
edamagit
丢弃修改
U
(取消)暂存修改.
大写 U Unstage all 等同于 git reset HEAD // 取消全部修改
edamagit
commit提交
提交 c-c
(按c 见到弹窗 再按c )
c-c Commit 等同于 git commit // 暂存区的所有内容提交到当前分支上 (理解为游戏读档)
使用
C-c 松手 C-c
(按键 Ctrl+cc
的缩写形式) 进行提交,出现diff界面还有输入commit的信息
*注意:提交时需要输入备注,否则不能提交; *
edamagit
commit提交后想回退(后悔药)
(大写)X(小写)m Reset 等同于 git reset
edamagit
提交记录查询
提交 l-l
(按l
见到弹窗 再按l
) 查看提交记录
l-l Log 等同于 git log // 查看所有提交
edamagit
推送代码到远程
(大写)P(小写)u 等同于 git push origin dev // 推送到远程dev分支并在远程自动创建dev分支
edamagit
拉取远程最新代码
提交 F-u
(按F
见到弹窗 再按u
) 拉取远程最新的代码
注:意记得协作的时候,先拉代码再推代码
(大写)F(小写)u Pulling 等同于 git pull // 拉远端最新的代码
edamagit
合并分支
m-m merge 等同于 git merge dev // 把dev代码合并到master
其余快捷键帮助
g refresh current buffer // 刷新页面 q exit / close magit view // 关闭弹出的页面 (退出) ? 注:magit模式下,输入"?" // 查看magit命令绑定在哪些按键上
结语:
第一次写文章,以上如有错漏,欢迎指出👏👏👏
转载自:https://juejin.cn/post/7046004138957602824