Belajar Git: Apa Perbedaan Git Fetch Dan Git Pull?

Estimated: 4 min read
Belajar Git: Apa Perbedaan Git Fetch Dan Git Pull?

Pada artikel sebelumnya kita sudah belajar bagaimana cara menggunakan remote repository untuk projek kita. Semua perubahan yang telah kita lakukan di local repository kita sudah terhubung dengan remote repository.

Tapi bagaimana cara membuat local repository kita tetap update dengan remote repository?

Bisa jadi projek kita yang telah menggunakan git dikerjakan oleh beberapa orang dalam tim, atau ada perubahan yang langsung dilakukan di remote repository kita, untuk itu kita perlu mengupdate local repository kita agar perubahan yang ada di remote repository ada di local repository kita juga.

Untuk mengupdate local repository kita perlu mengambil perubahan yang ada dari remote repository. Kita dapat menggunakan perintah git pull atau git fetch untuk mengupdate local repository kita.

Walaupun sama sama digunakan untuk mengambil perubahan dari remote repository, kedua perintah di atas sebenarnya berbeda loh...

Apa sih perbedaannya???...

Yuk mari kita lihat....

1. Perbedaan Git Fetch dan Git Pull

Kalau dilihat dari segi penggunaan dan kegunaannya git fetch dan git pull sekilas terlihat sama, tetapi keduanya ternyata berbeda.

Perintah git fetch hanya akan mengambil perubahan (commit-an) dari remote repository saja tanpa melakukan merge (penggabungan) ke local repository kita.

Sedangkan perintah git pull akan mengambil perubahan (commit-an) dari remote repository dan akan langsung digabungkan dengan local repository kita.

2. Kapan kita Harus Menggunakan Git Fetch dan Git Pull?

Kita dapat menentukan kapan kita harus menggunakan perintah git fetch dan kapan kita harus menggunakan perintah git pull dengan melihat kondisi local repository kita.

Jika kita sudah melakukan perubahan (commit) di local repository kita maka sebaiknya kita menggunakan perintah git fetch jika ingin mengambil perubahan dari remote repository. Hal ini agar tidak terjadi conflict (bentrok) antara perubahan yang ada di local repository kita dan perubahan dari remote repository, karena perintah git fetch tidak akan langsung melakukan penggabungan (merge).

Sedangkan jika kita belum melakukan perubahan (commi) apa apa pada local repository kita, maka kita dapat menggunakan perintah git pull untuk mengambil perubahan yang ada pada remote repository. Perintah git pull akan mengambil perubahan yang ada di remote repository dan akan langsung melakukan merge (penggabungan) ke local repository. Karena local repository kita belum ada perubahan yang kita lakukan maka tidak perlu khawatir akan terjadinya conflict.

Sebelumnya kita sudah memiliki remote repository yang ada di Gitlab pada artikel tentang remote repository, jika belum ada silakan buat dulu remote repository kalian.

Kita akan melihat bagaimana penggunaan Git Fetch dan Git Pull.

3. Mengambil Perubahan Dengan Git Fetch

Perintah git fetch dapat kita gunakan seperti berikut:

git fetch [nama-remote] [nama-branch]

Silakan buka akun gitlab kalian dan masuk ke remote repository yang telah kalian buat sebelumnya, kemudian klik tombil Add README

add-readme

Silakan isi dengan tulisan apapun dalam file README.md kalian, kalau sudah silakan pesan commit pada inputan Commit message atau biarkan secara default dan kemudian tekan tombol commit changes.

commit-readme

Kita sudah berhasil membuat perubahan (commit) dari remote repository selanjutnya kita akan mengambil perubahan tersebut ke local repository kita menggunakan perintah git fetch.

git-fetch

Jika kita lihat ternyata file README.md belum ada pada local repository kita padahal kita sudah berhasil menjalankan perintah git fetch.

file-list

Kenapa file nya belum ada???

Yuppss.... benar sekali, karena perintah git fetch hanya akan mengambil perubahan dari remote repository saja dan belum melakukan penggabungan (merge).

git-log

Kalau dilihat sebenarnya perubahan dari remote repository sudah ada tetapi masih di branch origin/master (remote branch). Selanjutnya kita hanya perlu menggabungkan antara remote branch dan local branch kita dengan perintah git merge.

git-merge

Yeay... file README.md dari remote repository sudah ada di local repository kita. 🥳 🎉

4. Mengambil Perubahan Dengan Git Pull

Cara penggunaan perintah git pull sama saja dengan git fetch, dengan perintah seperti berikut:

git pull [nama-remote] [nama-branch]

Pertama kita akan membuat perubahan lagi pada remote repository kita yang ada di gitlab. Silakan klik New file.

new-file

Pada bagian File name silakan isi dengan home.php dan ketikkan text apapun di dalamnya. Selanjutnya isi bagian Commit message dan klik Commit changes.

git-commit

Sekarang di remote repository kita sudah ada file home.php sedangkan di local repostory kita belum aja, selanjutnya kita akan mengambil perubahannya dengan perintah git pull.

git-pull

Kita coba cek apakah commit-an nya sudah ada di local repository kita.

git-log

Yeay... file home.php dari remote repository sudah ada di local repository kita. :partying_face: 🎉

Karena perintah git pull akan langsung melakukan merge ke local repository kita maka file home.php akan langsung otomatis ada di dalam local repository kita.

Kesimpulan

Kita dapat mengambil perubahan dari remote repository ke local repository kita dengan menggunakan perintah git pull dan git fetch. Adapun kedua perintah tersebut memiliki perbedaan, git fetch akan mengambil perubahan dari remote repository tanpa langsung melakukan penggabungan (merge) ke local repository, sedangkan git pull akan mengambil perubahan dari remote repository dan akan langsung melakukan merge ke local repository.

Perintah git pull biasanya digunakan ketika akan melakukan sinkronisasi antara remote repository dengan local repository. Perintah git fetch lebih aman digunakan karena kita dapat mengontrol proses merging untuk menghindari conflict.

Comments

Mohon sertakan informasi yang detail saat bertanya tentang eror, seperti: pesan error, log, dan screenshot.