git コマンド用のシンプルなターミナル UI
このプロジェクトの維持は、すべての貢献者とスポンサーのおかげで可能になっています。このプロジェクトのスポンサーとなり、あなたのアバターまたは会社のロゴを下に表示したい場合は、ここをクリックしてください。 ?
雑談: git は強力だということは聞いたことがあるでしょう。しかし、すべてを実行するのが非常に難しい場合、その力は何の役に立つのでしょうか?インタラクティブなリベースでは、エディターで TODO ファイルを編集する必要がありますか?私をからかってるの?ファイルの一部をステージングするには、コマンド ライン プログラムを使用して各ハンクをステップ実行する必要があります。ハンクをそれ以上分割できず、ステージングしたくないコードが含まれている場合は、難解なパッチ ファイルを編集する必要があります。手で?私をからかってるの?!ブランチを切り替えるときに変更をスタッシュするように求められることがありますが、切り替えてスタッシュを解除した後、競合さえなく、ブランチを直接チェックアウトするだけで問題なかったことに気づくことがありますか?冗談じゃないよ!
もしあなたが私のような凡人で、日常生活では非常に苦痛でありながら git がいかに強力であるかを聞くのにうんざりしているのであれば、lazygit がぴったりかもしれません。
Lazygit は私のフルタイムの仕事ではありませんが、かなりのパートタイムの仕事です。そのため、プロジェクトをサポートしたい場合は、私をスポンサーすることを検討してください。
選択した行でスペースを押してステージングするか、 v
を押して行の範囲の選択を開始します。 a
押して、現在のハンク全体を選択することもできます。
i
を押して対話型リベースを開始します。次に、リベースを起動してリベースを続行する前に、TODO コミットのいずれかをスカッシュ ( s
)、修正 ( f
)、ドロップ ( d
)、編集 ( e
)、上に移動 ( ctrl+i
) または下に移動 ( ctrl+j
) します。 m
を押してオプション メニューを表示し、 continue
を選択します。
リベースを明示的に開始せずに、これらのアクションを 1 回限り (コミットでs
押して破棄するなど) として実行することもできます。
このデモでは、Shift+Down を使用して、移動および修正するコミットの範囲を選択します。
コミット上でshift+c
押してコピーし、 shift+v
を押して貼り付け (チェリーピック) します。
git bisect を開始するには、コミット ビューでb
押してコミットに良好/不良のマークを付けます。
git status
実行したときに表示されるもの (ダーティ サブモジュールも含まれます) を本当にすべて削除したい場合は、kidpix スタイルで、 shift+d
を押してリセット オプション メニューを表示し、「nuke」オプションを選択します。
任意のコミットでshift+a
押すと、現在ステージングされている変更でそのコミットが修正されます (バックグラウンドで対話型リベースが実行されます)。
/
を使用してビューをフィルタリングできます。ここではブランチ ビューをフィルタリングし、 enter
押してコミットを表示します。
Lazygit には非常に柔軟なカスタム コマンド システムがあります。この例では、組み込みのブランチ チェックアウト アクションをエミュレートするカスタム コマンドが定義されています。
ワークツリーを作成すると、複数のブランチを切り替える際に WIP コミットを隠したり作成したりすることなく、複数のブランチを同時に実行できます。ブランチ ビューでw
押すと、選択したブランチからワークツリーが作成され、それに切り替わります。
古いコミットからカスタム パッチを構築し、コミットからパッチを削除したり、新しいコミットを分割したり、インデックスに逆にパッチを適用したりすることができます。
この例では、古いコミットから削除したい冗長なコメントがあります。コミットで
押してファイルを表示し、次にファイルで
押してパッチにフォーカスし、次に
を押してカスタム パッチにコメント行を追加し、次にctrl+p
てカスタム パッチのオプションを表示します。 ;現在のコミットからパッチを削除することを選択します。
詳細については、Rebase マジックの YouTube チュートリアルをご覧ください。
あなたは、develop ブランチから分岐した feature ブランチを使用していて、master ブランチから分岐することに決めたとします。機能ブランチからのコミットのみをリベースする方法が必要です。このデモでは、develop ブランチの最後のコミットがどれであるかを確認し、 shift+b
を押してそのコミットをベース コミットとしてマークし、次に master ブランチでr
押してそれにリベースし、ブランチからのコミットのみを持ち込んでいます。機能ブランチ。次に、 shift+p
使用して変更をプッシュします。
「z」を押すと最後の操作を元に戻し、 ctrl+z
を押すとやり直すことができます。ここでは、いくつかのコミットを削除してから、アクションを元に戻します。元に戻すには、コミットとブランチに固有の reflog が使用されるため、作業ツリーやスタッシュへの変更を元に戻すことはできません。
詳細情報
拡大ウィンドウでコミット グラフを表示すると (ウィンドウ サイズを切り替えるには+
と_
を使用します)、コミット グラフが表示されます。色はコミット作成者に対応しており、グラフを下に移動すると、選択したコミットの親コミットが強調表示されます。
コミット (またはブランチ/参照) 上でshift+w
を押すとメニューが開き、そのコミットをマークして、選択した他のコミットと比較できるようになります。 2 番目のコミットを選択すると、メイン ビューに差分が表示され、
を押すと差分ファイルが表示されます。 shift+w
を押して diff メニューを再度表示すると、diff 方向の反転や diff モードの終了などのオプションが表示されます。
を押して diff モードを終了することもできます。
上記のパッケージのほとんどはサードパーティによって保守されているため、必ず自分で精査し、その保守者が地元のスポーツの試合に参加したり、バーベキュー募金活動などでコミュニティに貢献したりする信頼できる人物であることを確認してください。
Windows、Mac OS(10.12+)、または Linux の場合は、ここからバイナリ リリースをダウンロードできます。
通常、lazygit 式は Homebrew コアにありますが、頻繁に更新される式をタップして取得することをお勧めします。 Linux でも動作します。
タップ:
brew install jesseduffield/lazygit/lazygit
コア:
brew install lazygit
github リリースからビルドされた最新バージョン。タップ:
sudo port install lazygit
Void Linux のパッケージはディストリビューション リポジトリで入手できます
アップストリームの最新リリースをフォローします
sudo xbps-install -S lazygit
scoopを使用してlazygit
インストールできます。それはextras
バケットにあります:
# Add the extras bucket
scoop bucket add extras
# Install lazygit
scoop install lazygit
Arch Linux のパッケージは、pacman および AUR (Arch User Repository) 経由で入手できます。
パッケージは2つあります。最新リリースでビルドされた安定版と、最新のコミットからビルドされた git バージョンです。
sudo pacman -S lazygit
AUR コンテンツのインストール方法については、https://wiki.archlinux.org/index.php/Arch_User_Repository を参照してください。
Fedora/RHEL および CentOS Stream のパッケージは、Copr (Cool Other Package Repo) から入手できます。
sudo dnf copr enable atim/lazygit -y
sudo dnf install lazygit
sudo eopkg install lazygit
LAZYGIT_VERSION= $( curl -s " https://api.github.com/repos/jesseduffield/lazygit/releases/latest " | grep -Po ' "tag_name": "vK[^"]* ' )
curl -Lo lazygit.tar.gz " https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_ ${LAZYGIT_VERSION} _Linux_x86_64.tar.gz "
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
Lazygit が正しくインストールされていることを確認します。
lazygit --version
Funtoo Linux には、dev-kit に自動生成された Lazygit パッケージがあります。
sudo emerge dev-vcs/lazygit
Lazygit は (まだ) メインの Gentoo ポーテージにはありませんが、ebuild は GURU オーバーレイで利用可能です
オーバーレイをシステムに追加して、通常どおり Lazygit をインストールすることができます。
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge dev-vcs/lazygit
Lazygit パッケージは現在、devel:langages:go/lazygit にビルドされています。
openSUSE Tumbleweed に Lazygit をインストールするには、次のコマンドを実行します。
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
openSUSE Leap に Lazygit をインストールするには、次のコマンドを実行します。
source /etc/os-release
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/ $VERSION_ID /devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
NixOs では、lazygit は nix にパッケージ化され、nixpkgs 経由で配布されます。以下を使用して、インストールせずに Lazygit を試すことができます。
nix-shell -p lazygit
# or with flakes enabled
nix run nixpkgs#lazygit
または、environment.systemPackages セクションのconfiguration.nix に Lazygit を追加することもできます。詳細については、NixOs 検索ページをご覧ください。
Lazygit は次のように Flox 環境にインストールできます。
flox install lazygit
Flox の詳細については、同社の Web サイトをご覧ください。
pkg install lazygit
apt install lazygit
リリースされたバージョンはさまざまなプラットフォームで利用できます。https://anaconda.org/conda-forge/lazygit を参照してください。
conda install -c conda-forge lazygit
go install github.com/jesseduffield/lazygit@latest
注: Lazygit が見つからない、または定義されていないというエラーが表示された場合は、$PATH (MacOS/Linux) または%HOME%gobin
(Windows) に~/go/bin
を追加する必要がある場合があります。 。 C:Gobin
(これは Go 独自のバイナリ用であり、lazygit などのアプリ用ではありません) と混同しないでください。
Chocolatey を使用してlazygit
インストールできます。
choco install lazygit
Windows ターミナルで次のコマンドを使用してwinget
コマンドを使用して、 lazygit
インストールできます。
winget install - e -- id = JesseDuffield.lazygit
Goをインストールする必要があります
git clone https://github.com/jesseduffield/lazygit.git
cd lazygit
go install
go run main.go
使用して、一度にコンパイルと実行を行うこともできます (冗談です)。
git リポジトリ内のターミナルでlazygit
呼び出します。
$ lazygit
必要に応じて、 echo "alias lg='lazygit'" >> ~/.zshrc
(または使用している rc ファイル) を使用して、このエイリアスを追加することもできます。
ここでキーバインドのリストを確認できます。
Laygit でリポジトリを変更し、Lazygit の終了時にシェルがディレクトリをそのリポジトリに変更するようにしたい場合は、これを~/.zshrc
(または他の rc ファイル) に追加します。
lg()
{
export LAZYGIT_NEW_DIR_FILE=~/.lazygit/newdir
lazygit "$@"
if [ -f $LAZYGIT_NEW_DIR_FILE ]; then
cd "$(cat $LAZYGIT_NEW_DIR_FILE)"
rm -f $LAZYGIT_NEW_DIR_FILE > /dev/null
fi
}
次に、 source ~/.zshrc
、今後lg
呼び出して終了すると、lazygit 内にいたディレクトリに切り替えることになります。この動作をオーバーライドするには、 q
だけでなく、 shift+Q
使用して終了します。
ドキュメントを参照してください
構成ドキュメントを確認してください。
ドキュメントを参照してください
Lazygit に機能が欠けている場合は、カスタム コマンドを使用して自分で実装できる可能性が高くなります。
ドキュメントを参照してください
Lazygit がインストールされている場合は、Gitflow をサポートします。 Gitflow モデルがどのように機能するかを理解するには、それを説明する Vincent Driessen の元の投稿を確認してください。 Lazygit 内から Gitflow オプションを表示するには、ブランチ ビュー内でi
を押します。
皆様からのご意見をお待ちしております。貢献ガイドをご覧ください。ここのリポジトリでは議論したくない内容についての寄稿者によるディスカッションについては、Discord チャンネルに参加してください。
どこから始めればよいか知りたい場合は、lazygit での小さな機能の作成を説明するこのビデオをご覧ください。
1 つのターミナル タブでlazygit --debug
実行し、別のターミナル タブでlazygit --logs
実行して、プログラムとそのログ出力を並べて表示します。
Lazygit の開発をサポートしたい場合は、私をスポンサーすることを検討してください (github は 12 か月間、すべての寄付を 1 ドルでマッチングしています)
私 (Jesse) が開発に関して何をしているのか知りたい場合は、Twitter で私をフォローするか、私のブログをチェックしてください。
Lazygit が要件を完全に満たしていないことがわかった場合は、次の方が適している可能性があります。