在 spacemacs 中使用 git

基本使用

查看状态

SPC g s 查看当前项目的 git 状态, 分为

Untracked files

s 将该文件加入 unStage files 列表即 unstage 区,相当于命令行上的 git add [filename]。 x 忽略该文件修改。 TAB 查看 diff q 返回

Unstaged files

u 撤销,即将该文件撤回到 Untracked 区。 TAB 查看 diff q 返回

Commit

c c 可将 Unstaged files 中的文件提交到 commit 区 其他操作待续。。

时光机 timemachne

注意该功能无法在 unTracked file 中使用 SPC g t 进入时光机 n 向后一个版本 p 向前一个版本 Y 拷贝当前版本的 git hash 值 q 退出

blame

SPC g b 进入, 可以查看当前文件的每一次提交记录的信息。

分支

  1. SPC g s b b –> checkout branch

让单个文件回到某个版本

先用 SPC g t 启动 git-timemachine 找到正确的版本,然后按 Y 复制 hash 值,最后 checkout 出来 注意: 这个命令不在 SPC g 的快捷键组里面,之前有些教程里的 # 键现在也取消了。

M-x magit-checkout-file

提交部分修改

v 选中想提交的行,然后可以:

  1. s stage 所选区域.
  2. u 可以 unstage 所选区域.
  3. x 可以 discard 所选区域.

这对于修改大文件或者改动多的文件时【特别有用】。

删除多个分支

  1. SPC g s 启动 magit 状态
  2. ? 号调出菜单,按 y 列出所有分支和 tag (或直接按 y, 然后选择 magit-show-refs-popup)
  3. v 选中想要删除的分支,按 x 确认删除,很 cool !

rebase

  1. SPC g s 启动状态栏以后,按 r e 调出 rebase 哪个分支, 更多文档

Squashing Commits

调出历史记录,然后 按 r i 进入交互式界面 注意 squash 是在当前行向上合并 squash 以后如果想要取消(squash 会新建一个 rebase 分支之类的 buffer, 退出 magit 以后进来还是会有),在弹出的 buffer 按 r 即可出现熟悉的 rebase skip/continue/abort 等,取消就用 r a 即可。