Tapi saya mendapatkan kesalahan "! [Ditolak]" dan sesuatu tentang "non fast forward"
Itu karena Git tidak dapat menggabungkan perubahan dari cabang menjadi master Anda saat ini. Katakanlah Anda telah memeriksa cabang master
, dan Anda ingin bergabung dengan cabang jarak jauh other-branch
. Ketika Anda melakukan ini:
$ git pull origin other-branch
Git pada dasarnya melakukan ini:
$ git fetch origin other-branch && git merge other-branch
Artinya, pull
hanya fetch
diikuti oleh a merge
. Namun, ketika pull
-ing, Git hanya akan bergabung other-branch
jika ia dapat melakukan penggabungan maju-cepat . Sebuah fast-forward merge adalah gabungan di mana kepala cabang Anda mencoba untuk menggabungkan ke dalam adalah keturunan langsung dari kepala cabang yang ingin bergabung. Misalnya, jika Anda memiliki pohon sejarah ini, maka penggabungan other-branch
akan menghasilkan penggabungan maju-cepat:
O-O-O-O-O-O
^ ^
master other-branch
Namun, ini bukan penggabungan maju-cepat:
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Untuk mengatasi masalah Anda, pertama ambil cabang jarak jauh:
$ git fetch origin other-branch
Kemudian gabungkan ke cabang Anda saat ini (saya akan menganggap itu master
), dan memperbaiki konflik penggabungan:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!