Lazygit 安装和使用
官方教程
Undo/Redo 特性
默认的 ‘z’ 是 undo, <C-z>
是 redo.
lazygit 利用 reflog 来跟踪. 因此 lazygit 只能 undo reflog 中的操作.
创建的新的 branch 不会被 undo.
配置
Linux 下的默认配置文件路径为: ~/.config/lazygit/config.yml
默认的配置在官网上可以看到, 可以复制到你的 config.yml
文件中.
editor 我设置的是 $VISUAL
.
具体的颜色配置可以参考官网.
可以自定义命令, 在 customCommands:
之后.
安装
基本使用
还是 vim 按键.
按 [] 可在每一个面板里的 tag 之间跳转.
按 x 可以看到 menu 界面, 用于查找快捷键.
files 面板
a (add): 把文件 stage, 即 add 到 stage. 再按一下 a 可以 unstage 文件. 这个是全部一起 stage.
在 files 面板按 c (commit) 可以提交. 按 C 可以在编辑器中编辑修改. 按 A 可以将本次要提交的内容 amend 到上次的 commit. 按 d (delete) 可以删除文件. 按下 D 可以看到更多放弃更改的选项, 第一个 reset --hard HEAD && git clean -fd
可以删除所有更改.
按 s 可以隐藏文件的更改到 stash 面板.
按 g 可以 pop 一次 stash.
staged/unstaged 面板
tab : 在 staged/unstaged 面板之间跳转.
在 staged 面板按 d, 可以 unstage 文件.
在 unstaged 面板中按 a 可以全部选中, 再按
分支面板
按 n (new) 可以添加分支.
用
按 P (push) 就会发布到远端.
合并分支, 先切换到接受合并的分支, 再选中想要合并的分支, 按 M 就可以 merge.
想要会滚就在这里, 先选中一个 branch, 然后可以看到这个 branch 的 commit 历史, 选中一个 commit 就可以会滚.
未命名的被 checkout 的 commit 不会保存在分支界面.
当前所处的分支不能被删除.
commit 面板
, 和 . 可以在列表中翻页, < 和 > 可以回到列表的最上方和最下方.
/ 用于搜索.
按 r (reword commit) 更改提交信息.
按 g, 可以 reset 分支. soft reset 不会删除文件.
所有删除其实 redo, 在 Reflog 这个 tag 里面可以看到更改的历史记录.
stash 面板
被 stash 的 commit 不会出现在分支的节点上.
按 g 可以 pop 一次 stash.
按 d 同样可以删除.
redo 在 stash 界面无效, 因为 stash 不会被记录在 reflog 中.
indirect rebasing
也就是重写 git 的提交历史. 可以把一次提交里面的更改和并到另一次提交里面.
将两次提交合并为一次, 选中一个 commit, 按下 s (squash) 就会把它和下面的一个 commit 合并在一起.
可以批量操作.
fixup
按 f, 也可以将两次提交合并.
解决合并冲突
在 Merge Conflict 面板里按上下键可以选择更改,
按 b 可以保留冲突的两种更改.