主题
Magit 使用手册
Magit 是 Emacs 中的 Git 操作界面。当前 Prelude 已安装 Magit,入口是 C-x g。
最常用工作流
text
C-x g 打开当前仓库的 Magit Status
s 暂存光标处文件或变更块
c c 创建提交
C-c C-c 确认提交信息
P u 推送到 upstream
q 关闭当前 Magit 页面Status 页面
| 按键 | 作用 |
|---|---|
g | 刷新状态 |
TAB | 展开或收起光标处内容 |
RET | 查看光标处文件、提交或差异 |
n / p | 移动到下一项 / 上一项 |
s | 暂存文件或变更块 |
u | 取消暂存 |
S | 暂存全部改动 |
U | 取消暂存全部改动 |
k | 丢弃改动或删除条目,执行前看清确认提示 |
q | 退出当前 Magit 页面 |
提交
- 在 Status 页面暂存需要提交的内容。
- 按
c c打开提交信息窗口。 - 第一行写简洁的提交摘要。
- 按
C-c C-c完成提交;按C-c C-k取消。
| 按键 | 作用 |
|---|---|
c c | 普通提交 |
c a | amend,修改最近一次提交 |
C-c C-c | 确认提交信息 |
C-c C-k | 取消提交 |
分支
| 按键 | 作用 |
|---|---|
b b | 切换分支 |
b c | 创建并切换到新分支 |
b n | 创建新分支 |
b d | 删除分支 |
拉取、获取与推送
| 按键 | 作用 |
|---|---|
f u | 从 upstream 获取更新(fetch) |
F u | 从 upstream 拉取并合并(pull) |
P u | 推送到 upstream |
P p | 推送到 pushRemote |
fetch 与 pull 的区别
fetch 只更新远程引用;pull 会继续合并或变基。拿不准时先用 f u。
日志与差异
| 按键 | 作用 |
|---|---|
l l | 查看当前分支日志 |
l a | 查看所有分支日志 |
d d | 查看工作区差异 |
d c | 比较两个提交 |
RET | 查看光标处提交详情 |
只暂存部分代码
- 在 Status 页面按
TAB展开文件。 - 移动到目标变更块,按
s暂存整个块。 - 如果只需部分行,先选中区域,再按
s。
撤销与恢复
- 未提交改动:在目标文件或变更块上按
k丢弃,操作不可逆,要谨慎。 - 已暂存改动:按
u退回工作区。 - 修改最近一次提交:使用
c a,确认提交内容后再执行。 - 不熟悉 reset、revert、rebase 时,先创建分支或确认工作区没有重要的未提交内容。
快捷键帮助
Magit 使用 Transient 菜单:按 c、b、f、F、P、l、d 后,会显示当前可用操作和参数。忘记快捷键时直接打开对应菜单,不需要死记全部命令。