[Studi Kasus] Kapan Waktu yang Tepat Menggunakan git pull dan git fetch?

Perintah git pull dan git fetch adalah dua perintah untuk mengambil commit terbaru
dari remote repository.
Pertanyaannya:
Apa perbedaan dari kedua perintah tersebut?
…dan kapan waktu yang tepat menggunakan git pull dan git fetch?
Mari kita bahas.
Apa Perbedaan git pull dengan git fetch?
Sebelum menjawab pertanyaan “kapan waktu yang tepat menggunakan git pull dan git fetch?”
kita bahas dulu perbedaannya.
Perintah git pull dan git fetch fungsinya sama. Yaitu mengambil commit terbaru dari
remote repository.

Tapi ada perbedaannya:
- Perintah
git pullakan mengambil commit terbaru lalu otomatis menggabungkan (merge) dengan branch yang aktif. - Sedangkan
git fetchakan mengambil commit saja. Perintahgit fetchtidak akan langsung melakukan merge.
Cara Menggunakan git pull dan git fetch
Perintah git pull dan git fetch dapat kita gunakan seperti ini:
git pull origin master
git fetch origin masterArtinya kita akan mengambil commit dari branch master pada repository remote.
origin adalah nama remote-nya.
Untuk penjelasan yang lebih detail, kita bisa membaca di dokumentasi
dengan mengetik perintah git pull --help atau git fetch --help.

Gampang kan?
Kapan Waktu yang Tepat Menggunakan git pull dan git fetch?
Apabila kita sudah melakukan commit di repository lokal,
maka yang kita gunakan adalah git fetch.

Kenapa menggunakan git fetch?
Karena untuk mencegah terjadinya bentrok.
Perintah git fetch
akan mengambil commit terbaru dan menyimpannya di branch origin/master.
Sedangkan apabila kita tidak pernah melakukan apa-apa di lokal repository,
kita bisa menggunakan git pull.

Perintah git pull akan mengambil commit terbaru ke branch origin/master
dan langsung menggabungkannya dengan branch master (lokal).
Studi Kasus Penggunaan git pull dan git fetch
Untuk mencoba penggunaan git pull dan git fetch kita akan menggunakan
repository
belajar-git
yang sudah dibuat di Github.

Saat ini sudah terdapat 14 kontributor di dalam repositori tersebut. Sedangkan pada repositori lokal, saya belum melakukan apa pun.
Ini perbedaan commit repo lokal dengan remote:

Pada repository remote sudah terjadi 48 commit, sedangkan pada lokal hanya 10 saja.
Sekarang saya akan melakukan sebuah commit di repository lokal.
Saya akan mengubah file README.md menjadi seperti ini:

Jadi sekarang di repositori lokal ada 11 commit.
Lalu perintah yang mana yang harus kita gunakan untuk mengambil 48 commit di Github?
Tentu saja kita akan menggunakan git fetch, karena saya sudah melakukan
perubahan di repo lokal.
git fetch origin masterHasil fetch akan disimpan dalam branch origin/master.

Kita bisa masuk ke branch origin/master dengan perintah git checkout:
git checkout origin/masterLalu kita bisa lihat commit apa saja yang ada di sana dengan git log:

Ada dua branch dalam log tersebut:
masteradalah branch master di lokalorigin/masteradalah branch master di remote yang sudah kita fetch.
Apabila kita sudah yakin, kita bisa menggabungkan (merge) dua branch tersebut.
Caranya:
# pindah dulu ke branch master (lokal)
git checkout master
# merge branch
git merge master origin/master
Berhasil 🎉…
Coba lihat hasilnya dengan git log:

Lalu Bagaimana Penggunaan Git Pull?
Perintah git pull digunakan saat kita tidak pernah melakukan commit apapun di repo
lokal.
Cara kerja git pull:
- Ambil semua commit dari repo remote
- Gabungkan branch master (lokal) dengan origin/master (remote)
- Selesai
Untuk mencoba git pull, saya akan mengubah file README.md dari
Github.

Artinya sekarang di repositori remote (Github) ada 1 commit baru.
Bagaimana cara mengambilnya dengan git pull?
Caranya:
Gunakan perintah ini.
git pull origin masterMaka semua commit terbaru dari branch origin/master di Github akan diambil ke lokal dan langsung
digabungkan dengan branch master.

Mudah bukan…
Jadi, Kesimpulannya
Gunakan perintah git pull saat tidak ada commit yang pernah
dilakukan di lokal. Sedangkan perintah git fetch digunakan
kalau sudah ada commit yang dilakukan.
Penggunaan git fetch lebih aman, karena kita akan melakukan
merge branch secara manual. Sehingga kita bisa terhindar dari
bentrokan.
Perintah git pull biasanya digunakan untuk sync repo
lokal dengan remote.
Jika kamu menggunakan vs Code, pada pojok kanan bawah
ada ikon untuk sync repo. Ini juga mungkin saja menggunakan git pull.

Silakan baca: Cara Menggunakan Git pada Visual Studio Code