likes
comments
collection
share

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

作者站长头像
站长
· 阅读数 3

前情提要:

写这篇文章的初衷是作为一个Vim键综合症,键盘流爱好者。在日常工作中Vscode使用vscode vim,浏览器使用surfingkeys全键盘浏览网页。

不满足于命令行的 git 使用,期待可以全键盘实现git工作流,于是有了今天的文章。

Emacs 有趣的梗很多譬如,用脚踏板的编辑器,可以煮咖啡,小指是折翼天使等等。 Emacs 因为有陡峭的学习曲线,今天文章不在介绍范围。

介绍: MagitEmacs 的一个扩展模块,官网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)

linuxalias别名,也是助记 的一种 alias gcl="git clone"

举以上例子只是为了铺垫下面的 magit助记键位,帮助未接触过vim键位以及Emacs键位的人群 --- 譬如文章介绍:

按下b(代表 Branch命令)再按下 b (代表切换分支Checkout命令)

按下c(代表 Committing命令)再按下 c (代表切换分支Commit命令)

今天介绍的是Vscode上的magit插件,实现不用 Emacs 也能用到神器magit

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用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操作,在 Vscode 中行云流水使用magit

命令行暂存修改

git add .     // 添加所有修改到暂存

命令行对比

git diff .     // 查看变更内容(建议在vscode中查看代码对比,比命令直观)

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

命令提交修改

git commit -m     '第一次提交' // 提交到本地仓库 “ '写的是修改内容'”

命令记录查询

git log     查看历史提交记录 git log --pretty=format:"%h %s" --graph     // 查看历史提交记录格式化并带颜色(更建议使用)

命令行回退修改(后悔药)

git reset --hard commit id     // 提交后回退修改 例如:git reset --hard f0872a4

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

命令行下载远程代码并合并(协作的时候)

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命令速查表

此图来源于网络,侵权删

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

edamagit操作git步骤

注意不用背快捷键, 按了快捷键组合 Alt + x g (git status) 会有提示。vscode ctrl + 1,ctrl + 2可以切换窗口

edamagit快捷键启动方式

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

意按下 Alt + x 松手 再按一下 g

Alt + x   g     Magit Status     查看项目的当前状态 (等同于 git status) 按下 Alt + x vscode底部会提示已经按下,这时再按g

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

意按下 Alt + x 松手 再按一下Alt + g

Alt  +  x   Alt  +  g     Magit File Popup 弹窗

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

按下Alt + x 松手 再按一下ctrl + g

Alt   +   x   ctrl   +   g     Magit Dispatch 查看快捷键位

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

edamagit切换分支(以下都在dev分支上做演示)

以下 - 符号间隔开 表示按一下 字母松手 再按下字母,示例b - cb 松手按 c

b-c     new Branch     创建本地新的分支并切换 (等同于 git checkout -b dev)

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

b-b     Checkout     检出到创建的分支 (等同于 git checkout dev)

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

edamagit暂存修改

s 将添加光标处文件的修改.

大写 S     Stage all     等同于 git add . // 暂存全部修改

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

edamagit丢弃修改

U (取消)暂存修改.

大写 U     Unstage all     等同于 git reset HEAD // 取消全部修改

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

edamagit commit提交

提交 c-c(按c 见到弹窗 再按c )

c-c     Commit     等同于 git commit // 暂存区的所有内容提交到当前分支上 (理解为游戏读档)

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit 使用C-c 松手 C-c(按键 Ctrl+cc 的缩写形式) 进行提交,出现diff界面还有输入commit的信息

*注意:提交时需要输入备注,否则不能提交; *

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

edamagit commit提交后想回退(后悔药)

(大写)X(小写)m     Reset     等同于 git reset

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

edamagit 提交记录查询

提交 l-l(按l见到弹窗 再按l ) 查看提交记录

l-l     Log     等同于 git log // 查看所有提交

edamagit 推送代码到远程

(大写)P(小写)u     等同于 git push origin dev     // 推送到远程dev分支并在远程自动创建dev分支

🪄犹如太空漫步-四手联弹的git操作,在 Vscode 中行云流水使用magit

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命令绑定在哪些按键上

结语:

第一次写文章,以上如有错漏,欢迎指出👏👏👏