Jaman sekarang hampir semua developer menggunakan Git untuk version control. Semenjak 15 tahun lalu dibuat oleh Linus Torvalds, Git sudah menjadi pilihan utama dalam pengembangan software, mengalahkan Subversion (SVN) dan Mercurial yang sempat populer sebelum Git. Perusahaan-perusahaan yang bisnisnya menjual layanan berbasis Git pun banyak yang meraup keuntungan sangat besar seperti GitHub yang diakusisi Microsoft dengan harga 7.5 milyar USD.🤯
Git adalah aplikasi command line interface (CLI). Dan seperti aplikasi CLI lainnya, ada banyak perintah (command), opsi, dan argumen yang dapat digunakan di Git. Biasanya developer hanya mengingat beberapa perintah yang digunakan setiap hari seperti git init
, git add
, git checkout
, git pull
, git push
, git reset
, git commit
, git stash
, dan git log
. Di artikel kali ini, saya akan menyajikan beberapa perintah Git yang saya jamin (mungkin sih 😅) banyak developer yang belum tahu namun cukup berguna.
#1 Tutorial Resmi dari Git tentang menggunakan Git secara minimal
git help everyday
. Dengan menjalankan perintah ini, developer dapat belajar dari panduan resmi tentang beberapa perintah Git yang umum digunakan oleh developer sebagai developer individual, developer yang bekerja di dalam tim (Participant), developer yang berperan sebagai integrator dan developer yang bertugas mengatur administrasi repositori.
Isi panduan ini saya rasa sangat berguna bukan hanya buat yang baru belajar Git, tapi untuk developer yang sudah lama menggunakan Git juga.
#2 Pindah ke cabang (branch) sebelumnya
git checkout -
. Perintah ini mirip seperti perintah untuk kembali ke direktori sebelumnya di Bash: cd -
#3 Auto correct perintah Git
git config --global help.autocorrect 10
. Dengan memasang konfigurasi help.autocorrect ini, Git akan secara otomatis menjalankan perintah yang benar apabila developer menjalankan perintah yang tidak tepat karena salah ketik. Angka 10 di perintah tersebut adalah jeda waktu yang digunakan Git sebelum menjalankan perintah yang dikiranya benar. 10 berarti 1 detik, 20 berarti 2 detik, dan seterusnya. Jeda waktu tersebut berguna apabila developer ingin membatalkan perintah yang akan dijalankan oleh Git.
#4 Simpan cabang dalam format zip
git archive --output <path_to_output>.zip <branch_name>
. Dengan perintah ini, developer dapat menyimpan semua file di sebuah cabang dalam format zip atau tarball tergantung extension output yang digunakan: .zip atau .tar.gz .
#5 Lihat sebuah file di sebuah cabang
git show <branch>:<path_to_file>
. Dengan menjalankan perintah tersebut, kita dapat melihat isi file di cabang lain. Misalnya, untuk melihat isi file bernama README.md di cabang main , kita dapat menjalankan perintah git show main:README.md
. Apabila file yang ingin dilihat ada di dalam direktori, kita tinggal menggunakan path ke file tersebut, misalnya git show main:src/index.js
.
#6 Push sekali ke beberapa repositori remote
Umumnya saat developer menjalankan perintah git push origin main
, cabang main di komputer developer tersebut akan di upload ke sebuah repositori di komputer lain, misalnya di GitHub, tergantung alamat URL yang diset oleh developer tersebut.
Tapi sebenarnya repositori remote tidak harus hanya satu URL. Sebuah repositori remote, misalnya yang namanya origin
, dapat memiliki beberapa URL dengan cara sebagai berikut.
Jalankan
git remote -v
untuk mendapatkan URL repositori remote yang sudah ada.Jalankan
git remote set-url --add --push origin <remote_url_1>
. Masukkan URL remote yang di dapat dari perintah no. 1 ke<remote_url_1>
. Misalnya,git remote set-url --add --push origin git@github.com:hyperjumptech/beda.git
Jalankan
git remote set-url --add --push origin <remote_url_2>
. Masukkan URL remote kedua ke<remote_url_2>
.Ulangi lagi langkah ketiga untuk URL remote lain yang ingin ditambahkan.
Setelah menjalankan langkah-langkah di atas, setiap menjalankan perintah git push origin main
, Git akan secara otomatis menge*push* cabang main ke setiap repositori remote yang sudah diset untuk origin.
Trik ini sangat berguna apabila kita ingin secara mudah membuat beberapa backup untuk repositori proyek kita. Untuk mengurangi risiko kehilangan data, kita dapat menyimpan repositori di beberapa layanan seperti GitHub, Gitlab, dan BitBucket secara bersamaan. Push Once, Back Up Everywhere™.
#7 Menggunakan beberapa cabang secara bersamaan
Ada kalanya saat kita sedang mengerjakan suatu fitur, misalnya di cabang feature/social-login
, kita perlu memperbaiki bug yang ada di cabang lain misalnya di cabang main
. Terkadang cukup repot untuk pindah cabang karena mungkin ada beberapa file yang belum di*commit*, atau mungkin file tersebut tidak perlu di*commit* namun dibutuhkan saat proses pengembangan.
Untuk itu kita perlu jalankan git stash
terlebih dahulu atau meng*commit* semua perubahan sebelum pindah ke cabang lain. Atau lebih ekstrem lagi kita bisa juga meng*clone* repositori tersebut ke direktori lain supaya tidak perlu pindah-pindah cabang.
Dengan menggunakan git worktree
, kita tidak perlu melakukan hal-hal di atas. Menambahkan sebuah worktree itu seperti melakukan clone tapi tanpa menduplikasi semua file.
Perintahnya adalah git worktree add -b <new_branch> <path_to_new_directory> <base_branch>
. Misalnya, perintah git worktree add -b hotfix/fix-bug ../tmp-hot-fix main
, akan membuat worktree baru di directori ../tmp-hot-fix
dan sebuah cabang baru dengan nama hotfix/fix-bug
berdasarkan cabang main
.
Setelah menjalankan perintah tersebut, kita mempunyai dua worktree dimana kita dapat melakukan perubahan dan menambahkan commit secara paralel di masing-masing cabang. Bila telah selesai memperbaiki bug di cabang hotfix/fix-bug
di direktori ../tmp-hot-fix
, kita bisa menggabungkannya (merge) ke cabang main
, lalu menghapus worktree tersebut dengan cara git worktree remove ../tmp-hot-fix
. Akhirnya kita dapat melanjutkan pekerjaan di cabang feature/social-login
.
Bekerja di cabang baru di worktree berbeda
#8 Perintah-perintah tambahan di git-extras
Dengan menginstal git-extras, kita dapat menggunakan perintah-perintah tambahan yang memudahkan penggunaan Git. Di Mac, instalasi dapat menggunakan Homebrew: brew install git-extras
.
Ada banyak perintah-perintah tambahan di git-extras, namun beberapa yang saya suka di antaranya adalah git obliterate
untuk menghapus sebuah file dari repositori termasuk dari semua commit sebelumnya, git pr
untuk mengambil Pull Request dari GitHub, git standup
untuk melihat apa yang salah satu penulis (author) sudah lakukan dalam waktu tertentu, dan masih banyak lagi.
Bagaimana? Apakah ada perintah baru yang kalian pelajari dari artikel ini? Apakah kalian tahu trik Git lain yang berguna? Ditunggu komen-komennya ya!
Artikel ini diterbitkan di Hyperjump Technology Publication di Medium. Silakan disimak artikel-artikel kita yang lain di sana ya!
Discussion
mantap terima kasih ilmu nya