如何安装和使用lazygit一个简单的git命令终端UI

时间:2020-02-23 14:30:35  来源:igfitidea点击:

在本教程中,请看一下如何在Linux和macOS上安装和使用Lazygit。 Lazygit是git命令的简单终端UI,使用gocuilibrary用Go编写。 Lazygit使我们可以在以终端为中心的环境中感受Sourcetree。 Lazygit快速且易于使用,我们只需要在git存储库中的终端中调用lazygit。 Lazygit可以在Linux,macOS,FreeBSD和Windows上运行。

Lazygit的功能

以下是lazygit的出色功能:轻松添加文件解决合并冲突轻松查看最近的分支滚动浏览分支的日志/差异/提交/存储快速推/拉压缩并重新命名提交

以下是lazygit git命令UI工具上可用的面板

全局PanelFiles PanelBranches PanelCommit PanelStash PanelDiff面板,用于解决合并冲突。

如何在macOS上安装lazygit

我们可以使用brew在macOS上轻松安装lazygit。

$brew tap jesseduffield/lazygit
$brew install lazygitbrew tap

如何在Ubuntu上安装lazygit

可通过Launchpad PPA获得适用于Ubuntu的Lazygit软件包。将其添加到Ubuntu系统,然后安装lazygit。

sudo add-apt-repository ppa:lazygit-team/daily
sudo apt-get update
sudo apt-get install lazygit

如何在Arch Linux上安装Lazygit

对于Arch Linux用户,我们可以从AUR安装lazygit。有两个包。使用最新版本构建的稳定版本(lazygit)和从最新提交构建的git版本(lazygit-git)。

为了能够在Arch Linux上从AUR安装软件包,我们需要AUR帮助器。 Checkyay是Arch Linux/Manjaro的最佳AUR助手。

安装好后,按如下所示安装lazygit:

$yay -S --noconfirm --needed lazygit

对于开发版本,请使用:

$yay -S --noconfirm --needed lazygit-git

从二进制包安装lazygit

我们也可以从二进制软件包安装lazygit。以下是在Linux上从二进制软件包安装lazygit的示例。

export VER="0.7.2"
wget -O lazygit.tgz https://github.com/jesseduffield/lazygit/releases/download/v${VER}/lazygit_${VER}_Linux_x86_64.tar.gz
tar xvf lazygit.tgz
sudo mv lazygit /usr/local/bin/

确认安装。

$lazygit  -v
commit=63e2ccfccf32bd7fff2e721940f8173c6194cce5, build date=2019-03-05T10:57:25Z, build source=binaryRelease, version=0.7.2, os=linux, arch=amd64

如何在git命令中使用lazygit

在git仓库中的终端中执行lazygit命令

$lazygit

以下是lazygitKeybindings:

全局:

← →↑↓/hjkl:               navigate
  PgUp/PgDn or ctrl+u/ctrl+d:   scroll diff panel 
                                     (for PgUp and PgDn, use fn+up/fn+down on osx)
  q:                                quit
  p:                                pull
  shift+P:                          push

文件面板:

space:    toggle staged
  c:        commit changes
  shift+C: commit using git editor
  shift+S: stash files
  t:        add patched (i.e. pick chunks of a file to add)
  o:        open
  e:        edit
  s:        open in sublime (requires 'subl' command)
  v:        open in vscode (requires 'code' command)
  i:        add to .gitignore
  d:        delete if untracked checkout if tracked (aka go away)
  shift+R: refresh files

分支机构小组:

space:   checkout branch
  f:       force checkout branch
  m:       merge into currently checked out branch
  c:       checkout by name
  n:       new branch
  d:       delete branch

提交面板:

s:       squash down (only available for topmost commit)
r:       rename commit
g:       reset to this commit

隐藏面板:

space:   apply
  g:       pop
  d:       drop

弹出面板:

esc:     close/cancel
  enter:   confirm
  tab:     enter newline (if editing)

解决合并冲突(差异面板):

←→/hl: navigate conflicts
  ↑↓/kj: select hunk
  space:      pick hunk
  b:         pick both hunks
  z:         undo (only available while still inside diff panel)