Skip to main content

Mengatasi git pull dan git push

· 3 min read
Wisnu Harjanta

Ketika mau melakukan git pull dan ternyata di branch remote terdapat update-an sering kali menemui warning seperti ini

Error saat ingin push update local ke remote

hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

dari error tersbut, disuruh untuk melakukan git pull terlebih dahulu. tapi ketika dilakukan git pull terdapat warning juga seperti ini.

Error saat pull update remote ke local

hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint: git config pull.rebase false # merge
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.

warning tersebut biasanya muncul ketika config.pullnya belum disetting terlebih dahulu. bisa jadi saat baru pindah komputer baru ataupun yang lain.

solusinya yaitu perlu malakukan set config gitnya sebelum memilih perlu diketahui dari masing masing value config tersebut

jika memilih

git config pull.rebase false

maka setiap perubahan diremote akan dilakukan merge ke local, dengan ini makan akan ada satu commitan baru diatas commit updatean dibranch remote

sedangkan jika memilih

git config pull.rebase true

maka setiap perubahan/commit di remote akan dilakukan rebase pada local, dan tidak akan ada commitan di branch local

Dari kedua hal tersebut manakah yang paling aman, semuanya aman asalkan sudah tahu perbedaannya. kalau misalnya disuruh memilih pilih yang

git config pull.rebase false

agar nantinya disaat ingin melakukan push ke remote tidak mengalami error lagi. hal ini terjadi karena fitur rebase akan merubah kode yang berbeda dengan yang ada diremote. Dan mau tidak mau harus melakukan git push --force, dan ini lumayan beresiko untuk dilakukan

Keterangan tambahan:

ketika melakukan git push --force semua kode yang ada diremote akan ditimpa dengan kode yang ada dilocal. sehingga semua perubahan yang ada diremote mungkin saja akan hilang.