UI terminal sederhana untuk perintah git
Pemeliharaan proyek ini dimungkinkan oleh semua kontributor dan sponsor. Jika Anda ingin mensponsori proyek ini dan avatar atau logo perusahaan Anda muncul di bawah, klik di sini. ?
Waktu kata-kata kasar: Anda pernah mendengarnya sebelumnya, git itu kuat , tapi apa gunanya kekuatan itu ketika semuanya begitu sulit dilakukan? Rebasing interaktif mengharuskan Anda mengedit file TODO di editor Anda? Apakah kamu bercanda? Untuk mementaskan bagian dari suatu file, Anda perlu menggunakan program baris perintah untuk menelusuri setiap bongkahan dan jika bongkahan tidak dapat dipecah lebih jauh tetapi berisi kode yang tidak ingin Anda pementaskan, Anda harus mengedit file patch misterius dengan tangan ? Apakah kamu bercanda?! Terkadang Anda diminta untuk menyembunyikan perubahan saat berpindah cabang hanya untuk menyadari bahwa setelah Anda beralih dan melepaskan simpanan, tidak ada konflik apa pun dan akan lebih baik jika langsung memeriksa cabang? KAMU PASTI BERCANDA SAYA!
Kalau kamu hanya manusia fana seperti saya dan bosan mendengar betapa kuatnya git padahal dalam kehidupan sehari-hari kamu merasa sangat sakit, maka lazygit mungkin cocok untuk kamu.
Lazygit bukan pekerjaan penuh waktu saya tetapi ini adalah pekerjaan paruh waktu yang lumayan besar, jadi jika Anda ingin mendukung proyek ini, mohon pertimbangkan untuk mensponsori saya
Tekan spasi pada garis yang dipilih untuk menampilkannya, atau tekan v
untuk mulai memilih rentang garis. Anda juga dapat menekan a
untuk memilih keseluruhan bongkahan saat ini.
Tekan i
untuk memulai rebase interaktif. Kemudian squash ( s
), fixup ( f
), drop ( d
), edit ( e
), pindah ke atas ( ctrl+i
) atau pindah ke bawah ( ctrl+j
) salah satu dari TODO yang dilakukan, sebelum melanjutkan rebase dengan membuka rebase menu opsi dengan m
lalu pilih continue
.
Anda juga dapat melakukan tindakan ini sekali saja (misalnya menekan s
pada komit untuk menekannya) tanpa memulai rebase secara eksplisit.
Demo ini juga menggunakan shift+down untuk memilih rentang komitmen yang akan dipindahkan dan diperbaiki.
Tekan shift+c
pada komit untuk menyalinnya dan tekan shift+v
untuk menempelkannya (pilih ceri).
Tekan b
pada tampilan komit untuk menandai komit sebagai baik/buruk untuk memulai pembagian git.
Untuk ketika Anda benar-benar ingin menghilangkan apa pun yang muncul ketika Anda menjalankan git status
(dan ya itu termasuk submodul kotor) gaya kidpix, tekan shift+d
untuk membuka menu opsi reset dan kemudian pilih opsi 'nuke'.
Menekan shift+a
pada komit apa pun akan mengubah komit tersebut dengan perubahan yang sedang dilakukan (menjalankan rebase interaktif di latar belakang).
Anda dapat memfilter tampilan dengan /
. Di sini kami memfilter tampilan cabang kami dan kemudian menekan enter
untuk melihat penerapannya.
Lazygit memiliki sistem perintah khusus yang sangat fleksibel. Dalam contoh ini, perintah khusus ditentukan yang mengemulasi tindakan checkout cabang bawaan.
Anda dapat membuat pohon kerja agar beberapa cabang berjalan sekaligus tanpa perlu menyembunyikan atau membuat komitmen WIP saat beralih di antara cabang-cabang tersebut. Tekan w
pada tampilan cabang untuk membuat pohon kerja dari cabang yang dipilih dan beralih ke cabang tersebut.
Anda dapat membuat tambalan khusus dari penerapan lama dan kemudian menghapus tambalan dari penerapan, membagi penerapan baru, menerapkan tambalan secara terbalik ke indeks, dan banyak lagi.
Dalam contoh ini kita memiliki komentar berlebihan yang ingin kita hapus dari commit lama. Kita menekan
pada komit untuk melihat filenya, lalu
pada file untuk memfokuskan patch, lalu
untuk menambahkan baris komentar ke patch kustom kita, lalu ctrl+p
untuk melihat opsi patch kustom ; memilih untuk menghapus patch dari komit saat ini.
Pelajari lebih lanjut di tutorial Youtube ajaib Rebase.
Katakanlah Anda berada di cabang fitur yang merupakan cabang dari cabang pengembangan, dan Anda telah memutuskan untuk lebih memilih cabang dari cabang master. Anda memerlukan cara untuk me-rebase hanya komit dari cabang fitur Anda. Dalam demo ini kita memeriksa untuk melihat komit mana yang terakhir di cabang pengembangan, lalu tekan shift+b
untuk menandai komit tersebut sebagai komit dasar kita, lalu tekan r
pada cabang master untuk melakukan rebase ke dalamnya, hanya membawa seluruh komit dari kita cabang fitur. Lalu kami mendorong perubahan kami dengan shift+p
.
Anda dapat membatalkan tindakan terakhir dengan menekan 'z' dan mengulanginya dengan ctrl+z
. Di sini kita membatalkan beberapa komitmen dan kemudian membatalkan tindakannya. Undo menggunakan reflog yang khusus untuk commit dan cabang sehingga kita tidak dapat membatalkan perubahan pada pohon kerja atau simpanan.
Informasi lebih lanjut
Saat melihat grafik komit di jendela yang diperbesar (gunakan +
dan _
untuk memutar ukuran jendela), grafik komit ditampilkan. Warna sesuai dengan penulis penerapan, dan saat Anda menavigasi grafik ke bawah, penerapan induk dari penerapan yang dipilih akan disorot.
Jika Anda menekan shift+w
pada komit (atau cabang/ref) sebuah menu akan terbuka yang memungkinkan Anda menandai komit tersebut sehingga komit lain yang Anda pilih akan berbeda dengannya. Setelah Anda memilih komit kedua, Anda akan melihat perbedaannya di tampilan utama dan jika Anda menekan
Anda akan melihat file perbedaannya. Anda dapat menekan shift+w
untuk melihat menu diff lagi untuk melihat opsi seperti membalikkan arah diff atau keluar dari mode diff. Anda juga dapat keluar dari mode diff dengan menekan
.
Sebagian besar paket di atas dikelola oleh pihak ketiga jadi pastikan untuk memeriksanya sendiri dan memastikan bahwa pengelolanya adalah orang yang dapat dipercaya yang menghadiri pertandingan olahraga lokal dan memberikan kontribusi kepada komunitas mereka dengan penggalangan dana barbeque, dll.
Untuk Windows, Mac OS (10.12+) atau Linux, Anda dapat mengunduh rilis biner di sini.
Biasanya rumus lazygit dapat ditemukan di inti Homebrew tetapi kami menyarankan Anda mengetuk rumus kami untuk mendapatkan rumus yang sering diperbarui. Ia juga bekerja dengan Linux.
Mengetuk:
brew install jesseduffield/lazygit/lazygit
Inti:
brew install lazygit
Versi terbaru dibuat dari rilis github. Mengetuk:
sudo port install lazygit
Paket untuk Void Linux tersedia di repo distro
Mereka mengikuti rilis terbaru upstream
sudo xbps-install -S lazygit
Anda dapat lazygit
menggunakan scoop. Itu ada di keranjang extras
:
# Add the extras bucket
scoop bucket add extras
# Install lazygit
scoop install lazygit
Paket untuk Arch Linux tersedia melalui pacman dan AUR (Arch User Repository).
Ada dua paket. Versi stabil yang dibuat dengan rilis terbaru dan versi git yang dibuat dari komit terbaru.
sudo pacman -S lazygit
Petunjuk cara memasang konten AUR dapat ditemukan di sini: https://wiki.archlinux.org/index.php/Arch_User_Repository
Paket untuk Fedora/RHEL dan CentOS Stream tersedia melalui 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
Verifikasi instalasi Lazygit yang benar:
lazygit --version
Funtoo Linux memiliki paket laggit yang dibuat secara otomatis di dev-kit:
sudo emerge dev-vcs/lazygit
Lazygit belum (belum) ada di portage utama Gentoo, namun ebuild tersedia di overlay GURU
Anda dapat menambahkan overlay ke sistem Anda dan menginstal Lazygit seperti biasa:
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge dev-vcs/lazygit
Paket Lazygit saat ini dibangun di devel:bahasa:go/lazygit.
Untuk menginstallazygit di openSUSE Tumbleweed, jalankan:
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
Untuk menginstallazygit di openSUSE Leap, jalankan:
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
Di NixOs, Lazygit dikemas dengan nix dan didistribusikan melalui nixpkgs. Anda dapat mencoba Lazygit tanpa menginstalnya dengan:
nix-shell -p lazygit
# or with flakes enabled
nix run nixpkgs#lazygit
Atau Anda dapat menambahkan lazygit ke konfigurasi Anda.nix di bagian environment.systemPackages. Detail lebih lanjut dapat ditemukan melalui halaman pencarian NixOs.
Lazygit dapat diinstal ke lingkungan Flox sebagai berikut.
flox install lazygit
Detail lebih lanjut tentang Flox dapat ditemukan di situs web mereka.
pkg install lazygit
apt install lazygit
Versi rilis tersedia untuk berbagai platform, lihat https://anaconda.org/conda-forge/lazygit
conda install -c conda-forge lazygit
go install github.com/jesseduffield/lazygit@latest
Harap dicatat: Jika Anda mendapatkan kesalahan yang menyatakan bahwa Lazygit tidak dapat ditemukan atau tidak ditentukan, Anda mungkin perlu menambahkan ~/go/bin
ke $PATH (MacOS/Linux), atau %HOME%gobin
(Windows) . Jangan salah mengira dengan C:Gobin
(yang merupakan binari Go sendiri, bukan aplikasi seperti Lazygit).
Anda dapat lazygit
menggunakan Chocolatey:
choco install lazygit
Anda dapat menginstall lazygit
menggunakan perintah winget
di Terminal Windows dengan perintah berikut:
winget install - e -- id = JesseDuffield.lazygit
Anda harus menginstal Go
git clone https://github.com/jesseduffield/lazygit.git
cd lazygit
go install
Anda juga dapat menggunakan go run main.go
untuk mengkompilasi dan menjalankannya sekaligus (permainan kata-kata pasti dimaksudkan)
Panggil lazygit
di terminal Anda di dalam repositori git.
$ lazygit
Jika mau, Anda juga dapat menambahkan alias untuk ini dengan echo "alias lg='lazygit'" >> ~/.zshrc
(atau file rc mana pun yang Anda gunakan).
Anda dapat melihat daftar keybindings di sini.
Jika Anda mengubah repo di Lazygit dan ingin shell Anda mengubah direktori ke repo tersebut saat keluar dari Lazygit, tambahkan ini ke ~/.zshrc
(atau file rc lainnya):
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
}
Kemudian source ~/.zshrc
dan mulai sekarang ketika Anda memanggil lg
dan keluar, Anda akan berpindah direktori ke apa pun tempat Anda berada di dalam Lazygit. Untuk mengesampingkan perilaku ini, Anda dapat keluar menggunakan shift+Q
bukan hanya q
.
Lihat dokumen
Lihat dokumen konfigurasi.
Lihat dokumen
Jika laggit tidak memiliki fitur, ada kemungkinan Anda dapat mengimplementasikannya sendiri dengan perintah khusus!
Lihat dokumen
Lazygit mendukung Gitflow jika Anda sudah menginstalnya. Untuk memahami cara kerja model Gitflow, lihat postingan asli Vincent Driessen yang menjelaskannya. Untuk melihat opsi Gitflow dari dalam Lazygit, tekan i
dari dalam tampilan cabang.
Kami menyukai masukan Anda! Silakan periksa panduan berkontribusi. Untuk diskusi kontributor tentang hal-hal yang tidak sebaiknya dibahas di repo ini, bergabunglah dengan saluran perselisihan
Lihat video ini tentang pembuatan fitur kecil di Lazygit jika Anda ingin mengetahui cara memulainya.
Jalankan lazygit --debug
di satu tab terminal dan lazygit --logs
di tab lain untuk melihat program dan keluaran lognya secara berdampingan
Jika Anda ingin mendukung pengembangan Lazygit, pertimbangkan untuk mensponsori saya (github mencocokkan semua donasi dolar demi dolar selama 12 bulan)
Jika Anda ingin melihat apa yang saya (Jesse) lakukan dalam hal perkembangan, ikuti saya di twitter atau lihat blog saya
Jika Anda menemukan bahwa Lazygit tidak cukup memenuhi kebutuhan Anda, ini mungkin lebih cocok: