Traffine I/O

Bahasa Indonesia

2023-03-04

Perintah Git

Apa itu Git

Git adalah sistem kontrol versi terdistribusi gratis dan sumber terbuka yang memungkinkan pengembang untuk mengelola kode sumber mereka dan berkolaborasi dengan orang lain pada proyek perangkat lunak.

Dibuat oleh Linus Torvalds, orang yang sama yang membuat sistem operasi Linux, dan telah menjadi sistem kontrol versi yang paling banyak digunakan di dunia.

Dengan Git, pengembang dapat melacak perubahan pada kode mereka, berkolaborasi dengan orang lain, dan dengan mudah mengembalikan perubahan jika terjadi kesalahan. Popularitasnya telah membuatnya menjadi alat yang sangat penting bagi tim pengembangan perangkat lunak, dari startup kecil hingga perusahaan besar.

Perintah Dasar Git

Berikut adalah perintah dasar Git yang umum.

Git Add

Perintah git add adalah bagian penting dari alur kerja git karena memungkinkan pengembang untuk mempersiapkan perubahan sebelum melakukan commit ke repositori.

Ketika Anda melakukan perubahan pada file di direktori kerja Anda, Git secara otomatis melacaknya sebagai file yang diubah. Namun, perubahan ini tidak secara otomatis ditambahkan ke area persiapan, di mana Git melacak perubahan yang siap untuk di-commit. Perintah git add digunakan untuk memindahkan perubahan dari direktori kerja ke area persiapan.

Berikut contoh penggunaan perintah git add:

bash
$ git add file.txt

Dalam contoh ini, perintah git add menambahkan file "file.txt" ke area persiapan. Anda juga dapat menggunakan wildcard untuk menambahkan beberapa file sekaligus:

bash
$ git add *.txt

Perintah ini menambahkan semua file teks dalam direktori saat ini ke area persiapan.

Anda juga dapat menggunakan perintah git add untuk mempersiapkan semua perubahan yang dibuat pada file di direktori kerja:

bash
$ git add .

Titik (.) mewakili direktori saat ini, dan perintah ini mempersiapkan semua perubahan yang dibuat pada file di direktori.

Git Commit

Perintah git commit digunakan untuk menyimpan perubahan yang dibuat pada repositori lokal. Ini membuat commit baru dengan ID unik, timestamp, dan pesan commit. Pesan commit harus menjadi deskripsi singkat tentang perubahan yang dilakukan dalam commit.

Berikut contoh penggunaan perintah git commit:

bash
$ git commit -m "Menambahkan fitur baru pada halaman login"

Dalam contoh ini, pesan commit adalah "Menambahkan fitur baru pada halaman login". Flag -m digunakan untuk menentukan pesan commit langsung di dalam perintah. Setelah menjalankan perintah ini, perubahan yang dibuat di direktori kerja akan disimpan di repositori lokal. Penting untuk dicatat bahwa meng-commit perubahan adalah operasi lokal dan tidak mempengaruhi repositori jarak jauh. Untuk mendorong perubahan ke repositori jarak jauh, perlu digunakan perintah git push.

Git Push

Perintah git push digunakan untuk mengunggah konten repository lokal ke repository remote. Ini adalah perintah yang digunakan untuk menerbitkan perubahan ke repository remote sehingga orang lain dapat mengaksesnya.

Berikut adalah contoh penggunaan perintah git push:

bash
$ git push origin master

Pada contoh ini, kita mendorong branch master ke remote origin. Saat Anda mengeksekusi perintah ini, Git akan mencoba untuk mendorong perubahan ke repository remote. Jika Anda membuat perubahan yang bertentangan dengan perubahan yang dilakukan oleh orang lain, Git mungkin tidak memungkinkan Anda untuk mendorong perubahan Anda sampai Anda menyelesaikan konflik tersebut.

Anda juga dapat menentukan commit tertentu untuk diunggah dengan menggunakan hash commit. Sebagai contoh:

bash
$ git push origin abc123

Perintah ini akan mendorong commit dengan hash abc123 ke remote origin.

Penting untuk dicatat bahwa Anda harus memiliki akses tulis ke repository remote agar dapat mendorong perubahan. Jika Anda tidak memiliki akses tulis, Anda perlu meminta pemilik repository untuk memberi Anda izin sebelum Anda dapat mendorong perubahan.

Git Pull

Perintah git pull digunakan untuk memperbarui repository lokal dengan perubahan yang dilakukan pada repository remote. Ini berguna ketika beberapa pengembang bekerja pada proyek yang sama dan perlu menjaga repository lokal mereka tetap terbaru dengan perubahan yang dilakukan oleh orang lain.

Misalkan Anda telah mengkloning repository dari GitHub dan ingin memperbaruinya dengan perubahan terbaru yang dilakukan pada repository remote. Anda dapat melakukannya dengan menjalankan perintah berikut di repository lokal Anda:

bash
$ git pull

Ini akan mengambil perubahan terbaru dari repository remote dan menggabungkannya ke dalam repository lokal Anda. Jika ada konflik antara perubahan lokal Anda dan perubahan remote, Git akan meminta Anda untuk menyelesaikan konflik sebelum penggabungan dapat diselesaikan.

Penting untuk dicatat bahwa git pull adalah gabungan dari dua perintah: git fetch dan git merge. Perintah git fetch mengunduh perubahan terbaru dari repository remote, sedangkan perintah git merge menggabungkan perubahan tersebut ke dalam repository lokal Anda. Anda juga dapat menjalankan perintah ini secara terpisah jika Anda lebih suka memiliki kontrol yang lebih besar terhadap proses pembaruan.

Git Status

Perintah git status digunakan untuk menunjukkan status terkini dari repositori lokal Anda. Ini menampilkan setiap perubahan yang dilakukan pada file-file Anda sejak commit terakhir, file yang siap di-commit (staged), dan file yang belum dilacak oleh Git.

Misalkan Anda memiliki repositori Git dan melakukan beberapa perubahan pada file bernama "index.html". Untuk melihat status repositori Anda, Anda dapat menjalankan perintah berikut:

bash
$ git status

Ini akan menampilkan keluaran yang serupa dengan berikut:

bash
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   index.html

no changes added to commit (use "git add" and/or "git commit -a")

Dalam contoh ini, Git memberitahu kita bahwa kita telah melakukan perubahan pada file "index.html", tetapi perubahan tersebut tidak dipersiapkan untuk di-commit. Git juga menyarankan bahwa kita dapat menggunakan perintah git add untuk mempersiapkan perubahan untuk di-commit.

Git Log

Perintah git log digunakan untuk menampilkan riwayat commit dari repositori Git. Ini menunjukkan daftar semua commit yang dibuat di dalam repositori, termasuk pesan commit, penulis, tanggal, dan hash commit.

Berikut ini adalah contoh keluaran perintah git log.

bash
commit c0c0a7e92e49239e4d7d8f25d4f764da4fe4f17d
Author: John Smith <john.smith@example.com>
Date:   Tue Mar 2 14:07:31 2021 -0500

    Updated index.html file

commit 12040db00cc28a71903c2d8e4f4daa4c5e5b5c8e
Author: Jane Doe <jane.doe@example.com>
Date:   Mon Mar 1 10:44:12 2021 -0500

    Added new styles to style.css file

commit 8c8a49a2a9ce9dc3d76a3e8c1f618ee45ec54a71
Author: John Smith <john.smith@example.com>
Date:   Sun Feb 28 16:15:52 2021 -0500

    Initial commit

Keluaran di atas menunjukkan daftar semua commit yang dibuat di dalam repositori, dalam urutan kronologis terbalik. Hash commit ditunjukkan sebagai string karakter alfanumerik, dan setiap commit memiliki penulis, tanggal, dan pesan commit. Dalam contoh ini, kita dapat melihat bahwa John Smith memperbarui file index.html pada commit terbaru, sementara Jane Doe menambahkan gaya baru pada file style.css pada commit terbaru kedua. Commit tertua dalam daftar adalah commit awal, dibuat oleh John Smith.

Branching di Git

Branching adalah fitur inti dari Git yang memungkinkan pengembang untuk bekerja pada versi yang berbeda dari basis kode mereka secara simultan. Dalam Git, sebuah branch pada dasarnya adalah garis pengembangan yang terpisah yang berbeda dari basis kode utama. Ini membuatnya mungkin bagi pengembang untuk melakukan perubahan pada basis kode tanpa memengaruhi cabang utama, atau untuk bekerja pada fitur baru atau perbaikan bug secara independen dari pengembang lain.

Ketika branch baru dibuat di Git, itu didasarkan pada commit saat ini di repositori. Ini berarti bahwa perubahan yang dibuat pada file di cabang baru tidak akan memengaruhi cabang utama sampai mereka digabungkan kembali. Setelah perubahan pada branch telah diuji dan disetujui, mereka dapat digabungkan kembali ke cabang utama menggunakan fungsi merge Git.

Menggunakan branching secara efektif sangat penting untuk mengelola proyek pengembangan perangkat lunak yang kompleks, terutama yang melibatkan beberapa pengembang atau tim. Ini memungkinkan untuk kolaborasi yang lebih efisien, pengujian yang lebih mudah, dan organisasi perubahan kode yang lebih baik. Dengan fitur branching yang kuat dari Git, para pengembang dapat bereksperimen dengan ide-ide baru dan melakukan perubahan pada basis kode mereka tanpa risiko memengaruhi bagian lain dari proyek.

Git Branch

Di Git, sebuah branch adalah garis pengembangan yang terpisah yang memungkinkan Anda untuk bekerja pada bagian yang berbeda dari sebuah proyek tanpa memengaruhi basis kode utama. Anda dapat membuat, menampilkan, dan menghapus branch menggunakan perintah git branch.

Misalkan Anda sedang bekerja pada sebuah proyek dan Anda ingin membuat sebuah branch baru untuk bekerja pada sebuah fitur. Anda dapat membuat sebuah branch baru bernama feature-branch menggunakan perintah berikut:

bash
$ git branch feature-branch

Ini akan membuat sebuah branch baru berdasarkan branch saat ini (biasanya master). Anda kemudian dapat beralih ke branch baru menggunakan perintah git checkout:

bash
$ git checkout feature-branch

Sekarang, setiap perubahan yang Anda buat hanya akan mempengaruhi branch feature-branch, bukan branch master. Setelah Anda selesai bekerja pada fitur tersebut, Anda dapat menggabungkan perubahan kembali ke branch master menggunakan perintah git merge.

Jika Anda ingin menampilkan semua branch dalam repositori Anda, Anda dapat menggunakan perintah berikut:

bash
$ git branch

Ini akan menampilkan semua cabang yang ada di repositori Anda dan menyorot cabang saat ini dengan tanda bintang.

Jika Anda ingin menghapus sebuah cabang, Anda dapat menggunakan perintah berikut:

bash
$ git branch -d feature-branch

Ini akan menghapus cabang feature-branch. Namun, jika cabang belum digabungkan, Git akan memberi peringatan untuk memastikan Anda ingin menghapus cabang tersebut.

Git Checkout

Dalam Git, perintah git checkout digunakan untuk beralih antara cabang yang berbeda, membuat cabang baru, dan menavigasi melalui riwayat commit. Berikut beberapa contohnya:

Beralih ke cabang yang ada

Untuk beralih ke cabang yang ada, Anda dapat menggunakan perintah git checkout diikuti dengan nama cabang. Misalnya, untuk beralih ke cabang develop, Anda akan menjalankan:

bash
$ git checkout develop

Ini akan memindahkan Anda ke cabang develop dan memperbarui direktori kerja Anda untuk mencerminkan file dan commit dalam cabang tersebut.

Membuat cabang baru

Anda dapat membuat cabang baru dan beralih ke dalamnya dalam satu langkah dengan menggunakan flag -b. Misalnya, untuk membuat cabang baru yang disebut feature-branch dan beralih ke dalamnya, Anda akan menjalankan:

bash
$ git checkout -b feature-branch

Ini akan membuat cabang baru berdasarkan cabang saat ini (biasanya master) dan memindahkan Anda ke feature-branch.

Menavigasi melalui riwayat commit

Anda dapat menggunakan git checkout untuk menavigasi melalui riwayat commit suatu repositori. Misalnya, jika Anda ingin melihat seperti apa proyek Anda dua commit yang lalu, Anda akan menjalankan:

bash
$ git checkout HEAD~2

Ini akan memindahkan direktori kerja Anda ke commit dua commit yang lalu. Anda dapat membuat perubahan atau melihat file seperti yang terlihat pada waktu itu.

Perlu dicatat bahwa ketika Anda beralih antar branch dengan git checkout, semua perubahan yang telah Anda buat pada file yang dilacak oleh Git akan hilang jika belum dicommit. Git akan memberikan peringatan jika hal ini terjadi, jadi pastikan untuk commit perubahan Anda atau menyimpannya sebelum beralih branch.

Git Merge

Dalam Git, perintah git merge digunakan untuk menggabungkan perubahan dari branch yang berbeda menjadi satu branch. Berikut ini contohnya:

Misalkan Anda telah bekerja pada sebuah branch fitur bernama new-feature dan ingin menggabungkan perubahan tersebut ke branch master. Pertama, beralih ke branch master menggunakan perintah git checkout:

bash
$ git checkout master

Kemudian, gunakan perintah git merge diikuti dengan nama branch yang ingin Anda gabungkan (dalam hal ini, new-feature):

bash
$ git merge new-feature

Git akan mencoba untuk menggabungkan perubahan dari branch new-feature ke branch master. Jika terdapat konflik (yaitu, perubahan di kedua branch yang mempengaruhi baris kode yang sama), Git akan meminta Anda untuk memecahkan konflik tersebut sebelum menyelesaikan penggabungan.

Setelah penggabungan selesai, perubahan dari branch new-feature akan dimasukkan ke branch master. Anda dapat menghapus branch new-feature jika tidak lagi dibutuhkan.

Perlu dicatat bahwa dalam beberapa kasus, Git dapat melakukan penggabungan "fast-forward", yang hanya memindahkan pointer branch saat ini ke commit terbaru pada branch lain. Ini terjadi ketika branch yang Anda gabungkan tidak memiliki perubahan baru sejak branch yang Anda gabungkan dibuat. Dalam hal ini, penggabungan sangat sederhana dan tidak akan terjadi konflik.

Git Workflow

Git workflow adalah proses yang menggambarkan langkah-langkah yang terlibat dalam menggunakan Git untuk kontrol versi dalam proyek pengembangan perangkat lunak. Alur kerja mendefinisikan cara perubahan kode dibuat, ditinjau, dan diintegrasikan ke dalam basis kode.

Ada berbagai alur kerja Git yang dapat diikuti, tetapi semuanya memiliki prinsip-prinsip umum yang sama, seperti penggunaan cabang untuk mengisolasi perubahan, melakukan commit secara teratur, dan berkolaborasi dengan pengembang lain melalui tinjauan kode.

Alur kerja Git menyediakan pendekatan terstruktur dan terorganisir untuk pengembangan perangkat lunak yang membantu tim bekerja sama secara efektif dan memberikan kode berkualitas tinggi. Dengan mengikuti alur kerja Git, pengembang dapat memastikan bahwa perubahan kode dilacak, ditinjau, dan diintegrasikan dengan benar, yang mengarah pada proses pengembangan yang lebih efisien dan terstruktur.

Git Stash

Dalam Git, perintah git stash digunakan untuk menyimpan sementara perubahan yang telah Anda buat pada sebuah cabang, tanpa melakukan commit. Ini dapat berguna ketika Anda perlu beralih ke cabang lain atau mengerjakan tugas yang berbeda, tetapi tidak ingin kehilangan perubahan yang telah Anda buat. Berikut ini adalah contoh penggunaannya:

Misalkan Anda telah bekerja pada cabang fitur yang disebut new-feature dan telah melakukan beberapa perubahan, tetapi Anda belum siap untuk melakukan commit. Namun, Anda perlu beralih ke cabang lain untuk mengerjakan perbaikan bug yang kritis. Anda dapat menggunakan perintah git stash untuk menyimpan perubahan Anda sementara:

bash
$ git stash

Perintah ini akan menyimpan perubahan Anda dan mengatur ulang direktori kerja Anda ke status terakhir yang dicommit. Sekarang Anda dapat beralih ke cabang lain dan mengerjakan perbaikan bug:

bash
$ git checkout bug-fix

Setelah Anda menyelesaikan perbaikan bug, Anda dapat beralih kembali ke cabang new-feature dan mengambil kembali perubahan yang telah Anda simpan menggunakan perintah git stash apply:

bash
$ git checkout new-feature
$ git stash apply

Perintah ini akan mengembalikan perubahan yang disimpan ke cabang dan menerapkannya ke direktori kerja Anda. Anda sekarang dapat melanjutkan bekerja pada cabang new-feature seperti biasa.

Perlu dicatat bahwa Anda dapat menggunakan perintah git stash list untuk melihat daftar semua penyimpanan yang disimpan, dan perintah git stash drop untuk menghapus penyimpanan tertentu. Anda juga dapat menggunakan perintah git stash pop untuk menerapkan penyimpanan paling terbaru dan menghapusnya dari daftar penyimpanan sekaligus.

Git Rebase

Di Git, perintah git rebase digunakan untuk mengintegrasikan perubahan dari satu cabang ke cabang lainnya. Ini memungkinkan Anda untuk menerapkan kembali commit di atas cabang yang berbeda, yang dapat membantu menyederhanakan riwayat repositori dan membuatnya lebih mudah dipahami. Berikut contohnya:

Misalkan Anda memiliki dua cabang, feature dan master. Anda telah bekerja pada cabang feature untuk sementara waktu, tetapi dalam waktu yang sama, ada beberapa perubahan baru yang dilakukan pada cabang master yang ingin Anda sertakan dalam fitur Anda. Untuk melakukan ini, Anda dapat menggunakan perintah git rebase:

bash
$ git checkout feature
$ git rebase master

Perintah ini akan menerapkan kembali semua commit pada cabang feature di atas cabang master saat ini, efektif menggabungkan perubahan dari master ke dalam fitur Anda. Jika ada konflik antara dua cabang, Git akan meminta Anda untuk menyelesaikannya sebelum melanjutkan.

Setelah rebase selesai, Anda dapat beralih kembali ke cabang master dan menggabungkan perubahan dari cabang feature seperti biasa:

bash
$ git checkout master
$ git merge feature

Ini akan menggabungkan perubahan dari cabang feature, termasuk perubahan dari master yang Anda gabungkan menggunakan git rebase.

Git Revert

Di Git, perintah git revert digunakan untuk membatalkan commit tertentu dengan membuat commit baru yang membalikkan perubahan yang dibuat dalam commit asli. Ini berbeda dengan perintah git reset, yang menghapus commit secara keseluruhan dan menulis ulang riwayat commit. Berikut contohnya:

Misalkan Anda memiliki cabang yang disebut master, dan Anda telah membuat commit yang memperkenalkan bug ke dalam kode:

bash
$ git checkout master
$ git commit -m "Introduce bug into code"

Untuk mengembalikan commit tersebut, Anda dapat menggunakan perintah git revert:

bash
$ git revert HEAD

Perintah ini akan membuat commit baru yang membatalkan perubahan yang dibuat pada commit sebelumnya. Jika ada konflik antara commit yang ingin dibatalkan dan perubahan lain di dalam repositori, Git akan meminta Anda untuk menyelesaikannya sebelum membuat commit baru.

Setelah commit pembatalan telah dibuat, Anda dapat mendorong perubahan kembali ke repositori jarak jauh seperti biasa:

bash
$ git push origin master

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!