草庐IT

lazygit-git命令行UI管理工具

追梦人在路上不断追寻 2023-10-09 原文

lazygit 是一个简单的 git 命令终端 UI,用 Go 语言和gocui库编写。

lazygit 主要的功能有:

  • 轻松添加文件
  • 解决合并冲突
  • 轻松查看最近的分支机构
  • 滚动浏览分支/提交/存储的日志/差异
  • 快速推送和拉取
  • 重新定位重新提交

Lazygit 按键绑定

全局键绑定

  <kbd>ctrl+r</kbd>: 切换到最近的仓库
  <kbd>pgup</kbd>: 向上滚动主面板 (fn+up/shift+k)
  <kbd>pgdown</kbd>: 向下滚动主面板 (fn+down/shift+j)
  <kbd>m</kbd>: 查看 合并/变基 选项
  <kbd>ctrl+p</kbd>: 查看自定义补丁选项
  <kbd>R</kbd>: 刷新
  <kbd>x</kbd>: 打开菜单
  <kbd>+</kbd>: 下一屏模式(正常/半屏/全屏)
  <kbd>_</kbd>: 上一屏模式
  <kbd>ctrl+s</kbd>: 查看按路径过滤选项
  <kbd>W</kbd>: 打开 diff 菜单
  <kbd>ctrl+e</kbd>: 打开 diff 菜单
  <kbd>@</kbd>: 打开命令日志菜单
  <kbd>}</kbd>: 扩大差异视图中显示的上下文范围
  <kbd>{</kbd>: 缩小差异视图中显示的上下文范围
  <kbd>:</kbd>: 执行自定义命令
  <kbd>z</kbd>: (通过 reflog)撤销「实验功能」
  <kbd>ctrl+z</kbd>: (通过 reflog)重做「实验功能」
  <kbd>P</kbd>: 推送
  <kbd>p</kbd>: 拉取

列表面板导航

  <kbd>,</kbd>: 上一页
  <kbd>.</kbd>: 下一页
  <kbd><</kbd>: 滚动到顶部
  <kbd>/</kbd>: 开始搜索
  <kbd>></kbd>: 滚动到底部
  <kbd>H</kbd>: 向左滚动
  <kbd>L</kbd>: 向右滚动
  <kbd>]</kbd>: 下一个标签
  <kbd>[</kbd>: 上一个标签

Reflog 页面

  <kbd>ctrl+o</kbd>: 将提交的 SHA 复制到剪贴板
  <kbd>space</kbd>: 检出提交
  <kbd>y</kbd>: copy commit attribute
  <kbd>o</kbd>: 在浏览器中打开提交
  <kbd>n</kbd>: 从提交创建新分支
  <kbd>g</kbd>: 查看重置选项
  <kbd>c</kbd>: 复制提交(拣选)
  <kbd>C</kbd>: 复制提交范围(拣选)
  <kbd>ctrl+r</kbd>: 重置已拣选(复制)的提交
  <kbd>enter</kbd>: 查看提交

分支页面

  <kbd>ctrl+o</kbd>: 将分支名称复制到剪贴板
  <kbd>i</kbd>: 显示 git-flow 选项
  <kbd>space</kbd>: 检出
  <kbd>n</kbd>: 新分支
  <kbd>o</kbd>: 创建抓取请求
  <kbd>O</kbd>: 创建抓取请求选项
  <kbd>ctrl+y</kbd>: 将抓取请求 URL 复制到剪贴板
  <kbd>c</kbd>: 按名称检出
  <kbd>F</kbd>: 强制检出
  <kbd>d</kbd>: 删除分支
  <kbd>r</kbd>: 将已检出的分支变基到该分支
  <kbd>M</kbd>: 合并到当前检出的分支
  <kbd>f</kbd>: 从上游快进此分支
  <kbd>g</kbd>: 查看重置选项
  <kbd>R</kbd>: 重命名分支
  <kbd>u</kbd>: set/unset upstream
  <kbd>enter</kbd>: 查看提交

子提交

  <kbd>ctrl+o</kbd>: 将提交的 SHA 复制到剪贴板
  <kbd>space</kbd>: 检出提交
  <kbd>y</kbd>: copy commit attribute
  <kbd>o</kbd>: 在浏览器中打开提交
  <kbd>n</kbd>: 从提交创建新分支
  <kbd>g</kbd>: 查看重置选项
  <kbd>c</kbd>: 复制提交(拣选)
  <kbd>C</kbd>: 复制提交范围(拣选)
  <kbd>ctrl+r</kbd>: 重置已拣选(复制)的提交
  <kbd>enter</kbd>: 查看提交的文件

子模块

  <kbd>ctrl+o</kbd>: 将子模块名称复制到剪贴板
  <kbd>enter</kbd>: 输入子模块
  <kbd>d</kbd>: 删除子模块
  <kbd>u</kbd>: 更新子模块
  <kbd>n</kbd>: 添加新的子模块
  <kbd>e</kbd>: 更新子模块 URL
  <kbd>i</kbd>: 初始化子模块
  <kbd>b</kbd>: 查看批量子模块选项

提交

  <kbd>ctrl+o</kbd>: 将提交的 SHA 复制到剪贴板
  <kbd>ctrl+r</kbd>: 重置已拣选(复制)的提交
  <kbd>b</kbd>: 查看二分查找选项
  <kbd>s</kbd>: 向下压缩
  <kbd>f</kbd>: 修正提交(fixup)
  <kbd>r</kbd>: 改写提交
  <kbd>R</kbd>: 使用编辑器重命名提交
  <kbd>d</kbd>: 删除提交
  <kbd>e</kbd>: 编辑提交
  <kbd>p</kbd>: 选择提交(变基过程中)
  <kbd>F</kbd>: 为此提交创建修正
  <kbd>S</kbd>: 压缩在所选提交之上的所有“fixup!”提交(自动压缩)
  <kbd>ctrl+j</kbd>: 下移提交
  <kbd>ctrl+k</kbd>: 上移提交
  <kbd>v</kbd>: 粘贴提交(拣选)
  <kbd>A</kbd>: 用已暂存的更改来修补提交
  <kbd>a</kbd>: reset commit author
  <kbd>t</kbd>: 还原提交
  <kbd>T</kbd>: 标签提交
  <kbd>ctrl+l</kbd>: 打开日志菜单
  <kbd>space</kbd>: 检出提交
  <kbd>y</kbd>: copy commit attribute
  <kbd>o</kbd>: 在浏览器中打开提交
  <kbd>n</kbd>: 从提交创建新分支
  <kbd>g</kbd>: 查看重置选项
  <kbd>c</kbd>: 复制提交(拣选)
  <kbd>C</kbd>: 复制提交范围(拣选)
  <kbd>enter</kbd>: 查看提交的文件

提交文件

  <kbd>ctrl+o</kbd>: 将提交的文件名复制到剪贴板
  <kbd>c</kbd>: 检出文件
  <kbd>d</kbd>: 放弃对此文件的提交更改
  <kbd>o</kbd>: 打开文件
  <kbd>e</kbd>: 编辑文件
  <kbd>space</kbd>: 补丁中包含的切换文件
  <kbd>a</kbd>: toggle all files included in patch
  <kbd>enter</kbd>: 输入文件以将所选行添加到补丁中(或切换目录折叠)
  <kbd>`</kbd>: 切换文件树视图

文件

  <kbd>ctrl+o</kbd>: 将文件名复制到剪贴板
  <kbd>ctrl+w</kbd>: 切换是否在差异视图中显示空白字符差异
  <kbd>d</kbd>: 查看'放弃更改'选项
  <kbd>space</kbd>: 切换暂存状态
  <kbd>ctrl+b</kbd>: Filter files (staged/unstaged)
  <kbd>c</kbd>: 提交更改
  <kbd>w</kbd>: 提交更改而无需预先提交钩子
  <kbd>A</kbd>: 修补最后一次提交
  <kbd>C</kbd>: 提交更改(使用编辑器编辑提交信息)
  <kbd>e</kbd>: 编辑文件
  <kbd>o</kbd>: 打开文件
  <kbd>i</kbd>: 忽略文件
  <kbd>r</kbd>: 刷新文件
  <kbd>s</kbd>: 将所有更改加入贮藏
  <kbd>S</kbd>: 查看贮藏选项
  <kbd>a</kbd>: 切换所有文件的暂存状态
  <kbd>enter</kbd>: 暂存单个 块/行 用于文件, 或 折叠/展开 目录
  <kbd>g</kbd>: 查看上游重置选项
  <kbd>D</kbd>: 查看重置选项
  <kbd>`</kbd>: 切换文件树视图
  <kbd>M</kbd>: 打开外部合并工具 (git mergetool)
  <kbd>f</kbd>: 抓取

构建补丁中

  <kbd>◄</kbd>: 选择上一个区块
  <kbd>►</kbd>: 选择下一个区块
  <kbd>v</kbd>: 切换拖动选择
  <kbd>V</kbd>: 切换拖动选择
  <kbd>a</kbd>: 切换选择区块
  <kbd>ctrl+o</kbd>: 将选中文本复制到剪贴板
  <kbd>o</kbd>: 打开文件
  <kbd>e</kbd>: 编辑文件
  <kbd>space</kbd>: 添加/移除 行到补丁
  <kbd>esc</kbd>: 退出逐行模式

标签页面

  <kbd>space</kbd>: 检出
  <kbd>d</kbd>: 删除标签
  <kbd>P</kbd>: 推送标签
  <kbd>n</kbd>: 创建标签
  <kbd>g</kbd>: 查看重置选项
  <kbd>enter</kbd>: 查看提交

正在合并

  <kbd>e</kbd>: 编辑文件
  <kbd>o</kbd>: 打开文件
  <kbd>◄</kbd>: 选择上一个冲突
  <kbd>►</kbd>: 选择下一个冲突
  <kbd>▲</kbd>: 选择顶部块
  <kbd>▼</kbd>: 选择底部块
  <kbd>z</kbd>: 撤销
  <kbd>M</kbd>: 打开外部合并工具 (git mergetool)
  <kbd>space</kbd>: 选中区块
  <kbd>b</kbd>: 选中所有区块
  <kbd>esc</kbd>: 返回文件面板

正在暂存

  <kbd>◄</kbd>: 选择上一个区块
  <kbd>►</kbd>: 选择下一个区块
  <kbd>v</kbd>: 切换拖动选择
  <kbd>V</kbd>: 切换拖动选择
  <kbd>a</kbd>: 切换选择区块
  <kbd>ctrl+o</kbd>: 将选中文本复制到剪贴板
  <kbd>o</kbd>: 打开文件
  <kbd>e</kbd>: 编辑文件
  <kbd>esc</kbd>: 返回文件面板
  <kbd>tab</kbd>: 切换到其他面板
  <kbd>space</kbd>: 切换行暂存状态
  <kbd>d</kbd>: 取消变更 (git reset)
  <kbd>E</kbd>: edit hunk

正常

  <kbd>mouse wheel ▼</kbd>: 向下滚动 (fn+up)
  <kbd>mouse wheel ▲</kbd>: 向上滚动 (fn+down)

状态

  <kbd>e</kbd>: 编辑配置文件
  <kbd>o</kbd>: 打开配置文件
  <kbd>u</kbd>: 检查更新
  <kbd>enter</kbd>: 切换到最近的仓库
  <kbd>a</kbd>: 显示所有分支的日志

存储

  <kbd>space</kbd>: 应用
  <kbd>g</kbd>: 应用并删除
  <kbd>d</kbd>: 删除
  <kbd>n</kbd>: 新分支
  <kbd>enter</kbd>: 查看提交的文件

远程分支

  <kbd>space</kbd>: 检出
  <kbd>n</kbd>: 新分支
  <kbd>M</kbd>: 合并到当前检出的分支
  <kbd>r</kbd>: 将已检出的分支变基到该分支
  <kbd>d</kbd>: 删除分支
  <kbd>u</kbd>: 设置为检出分支的上游
  <kbd>esc</kbd>: 返回远程仓库列表
  <kbd>g</kbd>: 查看重置选项
  <kbd>enter</kbd>: 查看提交

远程页面

  <kbd>f</kbd>: 抓取远程仓库
  <kbd>n</kbd>: 添加新的远程仓库
  <kbd>d</kbd>: 删除远程
  <kbd>e</kbd>: 编辑远程仓库

有关lazygit-git命令行UI管理工具的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  3. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  4. ruby-on-rails - 如何在 Ruby on Rails 中实现由 JSF 2.0 (Primefaces) 驱动的 UI 魔法 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。问题1)我想知道ruby​​onrails是否有功能类似于primefaces的gem。我问的原因是如果您使用primefaces(http://www.primefaces.org/showcase-labs/ui/home.jsf),开发人员无需担心javascript或jquery的东西。据我所知,JSF是一个规范,基于规范的各种可用实现,prim

  5. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  6. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  7. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  8. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  9. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  10. git使用常见问题(提交代码,合并冲突) - 2

    文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g

随机推荐