跳转至

lazygit学习笔记

安装

github: https://github.com/jesseduffield/lazygit

方式1:scoop安装

scoop安装
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
# 管理员用户用下面这句
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"

scoop bucket add extras
scoop install git
scoop install lazygit
推荐使用:windows-terminal

scoop install windows-terminal
方式2: 手动安装

  • 去github下载lazygit_0.48.0_Windows_x86_64.zip文件,
  • 解压出exe
  • 添加到环境变量。
  • 去github下载lazygit_0.48.0_Linux_x86_64.tar.gz
  • 把lazygit文件复制到/usr/local/bin/文件夹,
  • 授予执行权限(chmod +x /usr/local/bin/lazygit)。

基本操作

面板导航

界面分:工作区、分支管理、历史记录,Stash("草稿区"),预览区

可以使用Tab键、或者左右键切换到不同的面板

基本工作流

注意,各种按钮记不住,可以按键盘上的?,就会弹出各种快捷键的帮助菜单。

初始化git仓库
  • 切换到要初始化的目录
  • 打开终端输入lazygit,提示是否创建,输入y确认,提示输入分支名,输入master,确认
> lazygit
Not in a git repository. Create a new git repository? (y/n): y
Branch name? (leave empty for git's default): master
添加到暂存区:
  • 先按左右键导航到【工作区】面板,
  • 按a(相当于git add -A)添加全部文件,按空格(相当于git add xxx.file)添加单个文件到暂存区
添加到版本库
  • 先按左右键导航到【工作区】面板,
  • 按小写c(相当于git commit -m "your message"),弹出界面,填写要提交的信息
拉取代码
  • 先按左右键导航到【分支】或者【工作区】面板,
  • 按小写p(相当于git pull)完成,代码拉取
推送代码
  • 先按左右键导航到【分支】或者【工作区】面板,
  • 按大写P(相当于git push)完成,代码拉取

分支管理

新建分支
  • 按左右键切换到【分支】面板
  • 按键盘的n键,弹出界面,输入分支名,回车
分支合并
  • 按左右键切换到【分支】面板
  • 先按上下键选择某个分支,按回车切换激活分支,如master
  • 再按上下键,去选择要合并到master的分支,按大写M,弹出界面,默认选常规压缩,按回车即可
删除分支
  • 按左右键切换到【分支】面板
  • 先按上下键选择某个分支,按d键,删除分支

进阶

添加某一行到到暂存区:
  • 先按左右键导航到【工作区】面板,
  • 选中一个修改的文件,按回车键
  • 按键盘键盘上下键,选择要暂存的行,按空格确认。
  • 按a键,进入块选择模式,按回车选择要暂存的块
清空工作区(不可撤销,慎用⚠️⚠️⚠️)
  • 先按左右键导航到【工作区】面板,
  • 按D键,再按x键。清空工作区。
从版本库退回暂存区

注意⚠️:不要改写已经推送的Commit!!!请选择那些还没有推送上去的Commit - 先按左右键导航到【工作区】面板, - 选择要退回的Commit,按g弹出界面 -
- 选择Mixed,将会退回选择的Commit之后的所有Commit,退回到工作区

撤销提交
  • 先按左右键导航到【工作区】面板,
  • 选择要撤销的Commit,按t
  • 回车确定。
  • 将会产生一次Revert的记录
重写提交消息

注意⚠️:不要改写已经推送的Commit!!!请选择那些还没有推送上去的Commit

  • 先按左右键导航到【历史记录】面板,
  • 选中一个提交的Commit
  • 按r键,重写提交消息
  • 按回车键确认,完成
改变提交顺序

注意⚠️:不要改写已经推送的Commit!!!请选择那些还没有推送上去的Commit

  • 先按左右键导航到【历史记录】面板,
  • 选择要调顺序的上一条Commit,按e键进入变基
  • Ctrl+j将Commit往下移动,按Ctrl+k将Commit往上移动
  • 按m,弹出界面
  • 选择Continue,回车,完成Commit变基
查看某个文件的提交历史
  • 打开配置文件,添加键盘映射,写入如下内容,将过滤菜单映射到Ctrl+F

keybinding:
universal:
    filteringMenu: '<c-f>'
- 切换到历史记录面板,按Ctrl+F,弹出过滤菜单 -
- 选择【输入要过滤的路径】 - 输入路径,按回车。

路径是相对路径,以.git文件夹为根目录的相对路径

  • 弹出的界面,可以按Tab键去选择文件
  • 按回车
  • 即过滤出只和“新建文本文档.txt”文件相关的提交历史

冲突解决

解决冲突合并
  • git pull或者手动合并分支后,出现冲突,弹出如下界面,按回车查看冲突
  • 工作区会出现冲突的文件,
  • 按回车进入某个文件,解决冲突
  • 按上下键,选择某个块,HEAD块是当前分支,test块是来自test分支的。选择后,按空格,完成冲突解决。
  • 如果两个都接受,按b键,全部全接受,如果已经解决完,则自动弹出解决完成的窗口
  • 按回车键完成冲突合并

界面调整

修改历史树的显示
  • 打开%userprofile%\AppData\local\lazygit\config.yml,文件,如果没有,可以自己新建一个
  • 添加如下内容:

    git:
        branchLogCmd: "git  log --graph --abbrev-commit --decorate --color=always --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ad)%C(reset) %C(white)%s%C(reset) %C(dim cyan)- %an%C(reset)%C(bold yellow)%d%C(reset)' --date=format:'%Y-%m-%d %H:%M:%S %a' "
    
  • 保存文件,切换到【分支】面板,就可以看到效果,如没有正常显示,可关闭lazygit,再次打开。

Reference

评论