Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●
Tentang Lazygit
Lazygit adalah Terminal User Interface sederhana yang digunakan untuk mempermudah kita dalam menggunakan perintah-perintah Git. Ditulis dengan bahasa pemrograman Go oleh Jesse Duffield.
Skenario
Pada catatan kali ini, saya akan mendokumentasikan secara tertulis pemaparan tentang 15 fitur dari Lazygit yang dibawakan oleh Jesse Duffield dalam videonya yang diunggah ke YouTube dengan judul 15 Lazygit Features In Under 15 Minutes.
Navigasi
Key | Deskripsi |
---|---|
j & k | Move selected cursor up & down |
h & l | Move selected section up & down |
x & ? | Keybind help |
Features
1. Staging files fast
Pada section Files,
Key | Deskripsi | Toggle On/Off |
---|---|---|
Space | Selected file into staging | Yes |
a | All files into staging | Yes |
Keterangan,
Prefix | Deskripsi |
---|---|
?? | Unstaged file |
A | Staged file |
M | Modified file |
1.1. Untuk membuat commit message
Key | Deskripsi |
---|---|
c | Membuat commit message |
1.2. Untuk melakukan reset last commit (membatalkan commit terakhir)
Letakkan cursor (highlight cursor) pada commit hash setelah last commit (setelah commit terakhir) (Lihat Gambar 3 di bawah).
Saya ingin melakukan reset terhadap commit hash b5d7f96f, maka cursor saya letakkan pada commit hash 8b27e34f, kemudian tekan g.
Key | Deskripsi |
---|---|
g | Reset to this commit |
Nanti akan keluar popup window,
Pilih yang soft reset.
Kalau berhasil, stagging files yang berada di last commit kita akan muncul di section Files.
2. Staging Lines
Pada section Files, pilih file yang ingin dilakukan commit pada baris tertentu saja.
Kemudian tekan Enter. Focus akan berpindah ke section Unstaged Changes.
2.1. Single line
Pada section Unstaged Changes, tekan Space untuk memasukkan baris yang terseleksi (selected line) ke dalam secton Staged Changes.
2.2. Multiline dengan Visual Block
Bisa juga gunakan Visual Block dengan menekan v (untuk mengaktifkan mode visual block), lalu tekan j (untuk memilih rentang line). Kalau sudah, tinggal tekan Space (untuk memasukkan rentang baris yang terlpilih ke dalam secton Staged Changes).
2.3. Melakukan commit
untuk membuat commit, sama seperti pada feature no. 1 di atas, yaitu menggunakan tombol c untuk membuat commit message.
2.4. Undo staged changes
Untuk melakukan undo terhadap baris yang sudah terlanjur di-staging, kita perlu berpindah section ke secton Staged Changes dengan menekan Tab (toggle on/off).
Kemudian gunakan d atau Space untuk mengembalikan baris atau rentang baris yang tidak jadi di-staging ke section Unstaged Changes.
2.5. Delete unstaged changes
Pada section Unstaged Changes, kita dapat membatalkan perubahan pada baris yang terseleksi dengan menggunakan d.
3. Cherry Picking
Misalkan saat ini kita berada pada branch Master. Pada section Commits, tekan c (toggle on/off) pada commit yang ingin dilakukan cherry picking.
Kemudian pindah ke section Local Branches, dengan h. Pilih branch dengan j dan k, lalu aktifkan (berpindah) branch dengan Space.
Setelah berpindah branch di branch tujuan (misalkan branch tujuan saya adalah status2d), pindah ke section Commits dengan l. Untuk melakukan paste terhadap commit yang sudah kita lakukan cherry pick gunakan v.
Akan ada popup window,
Yang bertuliskan, “Are you sure you want to cherry-pick the copied commits onto this branch?”
Tekan Enter untuk setuju.
Hasilnya akan seperti ini,
4. Nuking Working Tree
4.1. Nuke single file
Pada section Files, misalkan kita ingin mengembalikan file atau menghapus perubahan yang ada di dalam suatu file seperti keadaan sebelum dilakukan perubahan, kita dapat menggunakan d.
Akan ada popup window,
Pilih discard all changes, untuk mengembalikan file seperti semula (sebelum di-edit).
Cara ini tidak menghapus file namun hanya mengembalikan file ke dalam keadaan semula sebelum dilakukan perubahan.
4.1. Nuke all files
Pada section Files, misalkan kita ingin membersihkan semua unstaging files dari daftar working tree, kita dapat menggunakan Shift+d.
Akan ada popup window,
Pilih “nuke working tree”. Maka, semua unstaged files akan hilang dari daftar working tree.
Cara ini tidak menghapus file-file tersebut namun hanya mengembalikan file ke dalam keadaan semula sebelum dilakukan perubahan.
5. Interactive rebasing
Pada section Commits, kita ingin melakukan rebase dari commit yang saya kotakin merah di bawah.
Untuk melakukan rebase, tekan e. Maka akan masuk ke dalam mode interaktif rebase seperti di bawah ini.
5.1. Beberapa rebase commands
Terdapat beberapa command yang dapat digunakan, seperti:
Key | Deskripsi |
---|---|
p | Pick commit (when mid-rebase) |
s | Squash down |
e | Edit commit |
f | Fixup commit |
d | Delete/Drop commit |
5.2. Bertukar posisi commit (swap commit position)
Bertukar posisi/swap commit menggunakan,
Key | Deskripsi |
---|---|
Ctrl+j | Swap selected commit down |
Ctrl+k | Swap selected commit up |
Kalau sudah, tekan m, dan akan muncul popum window.
Pilih continue jika ingin melakukan proses rebase. Pilih abort jika tidak ingin melakukan rebase.
6. Amending old commits
Pada section Files, sudah harus ada file yang masuk staging area.
Kemudian, pindah ke section Commits.
Pilih commit yang ingin dilakukan ammending. Lalu tekan Shift+a.
Akan ada popup window,
Tekan Enter untuk menyetujui.
7. Open pull request
Pada section Local Branches, tekan o, untuk melakukan Open a pull request dari branch yang terseleksi.
Nanti akan dibukakan halaman GitHub Open Pull Request di Browser.
8. Revert commit
Pada section Commits, pilih commit yang ingin dilakukan revert. Kemudian tekan t, maka akan dibuatkan revert commit (commit kebalikan) dari commit yang dipilih. Revert commit tersebut akan dibuatkan commit message dengan prefix “Revert”,
Revert "bla bla commit message bla bla"
9. Stash selected files
9.1. Membuat stash
Pada section Files, apabila ingin melakukan stash pada working tree, tekan s untuk stash changes, atau Shift+s untuk stash staged changes.
Kemudian buat stash message.
Maka, file yang di-stash akan masuk ke dalam section Stash.
9.2. Menggunakan stash
Pada section Stash, pilih stash yang ingin digunakan. Untuk menggunakannya, ketik Space untuk mengeluarkan dari stash tanpa menghapus, atau ketik g untuk mengeluarkan dari stash sekaligus menghapus dari stash.
10. Moving code between old commits
https://www.youtube.com/watch?v=CPLdltN7wgE&t=442s
11. Deleting code from old commits
https://www.youtube.com/watch?v=CPLdltN7wgE&t=512s
12. Fixing merge conflicts
https://www.youtube.com/watch?v=CPLdltN7wgE&t=547s
13. Easy rebase onto origin/master
https://www.youtube.com/watch?v=CPLdltN7wgE&t=565s
14. Branch checkout without stashing changes
https://www.youtube.com/watch?v=CPLdltN7wgE&t=613s
15. Theme customisation
https://www.youtube.com/watch?v=CPLdltN7wgE&t=671s
Thanks
Trima kasih kepada Jesse Duffield karena telah membuat Lazygit.
Pesan Penulis
Sepertinya, segini dulu yang dapat saya tuliskan.
Mudah-mudahan dapat bermanfaat.
Terima kasih.
(^_^)
Referensi
- https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase
Diakses tanggal: 2021/12/15
Lisensi
Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional (CC BY-NC-SA 4.0)
Penulis
My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.
- Rizqi Nur Assyaufi