Magit
A Git Porcelain inside Emacs。Magit
Magit 可以看作是一个嵌在 Emacs 里的一个客户端,但它同时也提供了命令行的操作(废话)。在 Emacs 里打开一个 Git 项目,M-x: magit-status 这样就启动了 magit 了,之后下面提到的操作就非常简单了。
Table of Contents
1. Branch
b
会弹出以上菜单,和你平时看到的完全不同(毕竟是在 Emacs)。
其中紫色对应的是 按键
后面的白色字体就是具体功能的描述了。例如:再单击 c 我们就进入了创建新分支的命令。Branch
2. Stage(all) / Unstage(all)
这里我们可以 Stage 单个文件,也可以 Stage 全部缓冲区的文件,相反,Unstage 也是这样的。
s S 全选 , u U 全选 小写对应是单个缓冲区文件,大写对应的是全部缓冲区文件。Stage/Unstage
3. Commit
c
再单击一次 c 就会进入编辑 commit 的界面了,根据界面提示,C-c C-c 提交 commit
,C-c C-k 取消 commit
。Commit
上面 ‘-a’, ‘-e’…的意思也是一样的,按 - a,不同的是带 - 前缀的功能只会在当前的操作上暂时启用,而且后面灰色的注释会暂时高亮,代表着暂时启用对应的。当你再一次按 c 时,后面的注释还是灰色,代表着没开启对应的功能。
4. Log
l
还是弹出一个与上面类似的菜单,这里就不展示图片了。再次单击,我们就能看到当前分支的所有 commit
记录。最常用的就是这个功能了,当然里面还有很多我还没使用过的功能。但是 在这个显示 LOG
记录的页面里,我们还可以轻松的完成 RESET, REVERT 这两个常用的操作。Log
5. Push
p
在弹出菜单后,再按一次 p,就触发了 push 。Push
❗ 当我们执行回滚操作后,要将回滚后的仓库提交到远程仓库时,执行以上 push 的方法是行不通的,无法提交到远程仓库
先按 p,进入 push 菜单;再按 - f,暂时开启 force with lease;然后再按 p 执行 push 操作,就能提交成功!
想要具体了解 force with lease 与 force 之间的区别,自己百度一下就明白了。
6. Reset
X
上面的说明够直白清楚的了,在我们一般惯性思维里,会选择 X h,这种方式——一切都回到原来的那个状态。Reset
先按 l l 进入 Log,选择 Reset 的点之后,再进行上面的操作。
总结
- 直接在 Github 单击下载按钮下载的仓库是没有 .git 文件夹的,也就是说这样下载下来的不是一个仓库……问题很大,所以还是使用
git clone ......
的方式更稳妥,除非你不想要 .git 文件,也就是仓库提交记录。 - 在本地仓库新建 dev branch 时,先 p u,目的是在远程仓库创建也新建一个 dev branch,然后再 p p,不然会报错,你还不知道怎么弄。