[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 pull
akan mengambil commit terbaru lalu otomatis menggabungkan (merge) dengan branch yang aktif. - Sedangkan
git fetch
akan mengambil commit saja. Perintahgit fetch
tidak 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 master
Artinya 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 master
Hasil fetch akan disimpan dalam branch origin/master
.
Kita bisa masuk ke branch origin/master
dengan perintah git checkout
:
git checkout origin/master
Lalu kita bisa lihat commit apa saja yang ada di sana dengan git log
:
Ada dua branch dalam log tersebut:
master
adalah branch master di lokalorigin/master
adalah 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 master
Maka 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