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
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.
Kita sudah berhasil membuat perubahan (commit) dari remote repository selanjutnya kita akan mengambil perubahan tersebut ke local repository kita menggunakan perintah git fetch
.
Jika kita lihat ternyata file README.md
belum ada pada local repository kita padahal kita sudah berhasil menjalankan perintah git fetch
.
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).
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
.
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.
Pada bagian File name silakan isi dengan home.php
dan ketikkan text apapun di dalamnya. Selanjutnya isi bagian Commit message dan klik Commit changes.
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
.
Kita coba cek apakah commit-an nya sudah ada di local repository kita.
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.