Git pull vs git fetch git rebase

Pertanyaan lain mengatakan bahwa git pull mirip dengan git fetch + git merge .

Tapi apa perbedaan antara git pull vs git fetch + git rebase ?

272
28 июля '10 в 23:16 2010-07-28 23:16 diatur oleh michael 28 Juli '10 pada 23:16 2010-07-28 23:16
@ 2 balasan

Seharusnya cukup jelas dari pertanyaan Anda bahwa Anda hanya bertanya tentang perbedaan antara git merge dan git rebase .

Jadi, mari kita asumsikan bahwa Anda biasanya melakukan beberapa pekerjaan di cabang master Anda, dan Anda menariknya dari aslinya, yang juga melakukan beberapa pekerjaan. Setelah ekstraksi, terlihat seperti ini:

 - o - o - o - H - A - B - C (master) \ P - Q - R (origin/master) 

Jika Anda bergabung pada titik ini (perilaku default untuk git pull), jika tidak ada konflik, Anda akan mendapatkan yang berikut:

 - o - o - o - H - A - B - C - X (master) \ / P - Q - R --- (origin/master) 

Di sisi lain, jika Anda telah reboot, Anda akan menerima yang berikut:

 - o - o - o - H - P - Q - R - A' - B' - C' (master) | (origin/master) 

Isi pohon kerja Anda harus sama dalam kedua kasus; Anda baru saja membuat cerita lain yang mengarah ke sana . Penulisan u>R ) alih-alih dari tempat Anda mengambil ( H ). Anda tidak boleh menggunakan metode pengalihan jika orang lain menarik dari cabang utama Anda.

Terakhir, perhatikan bahwa Anda dapat mengonfigurasi git pull untuk cabang tertentu untuk menggunakan rebase alih-alih menggabungkan dengan mengatur branch.<name>.rebase parameter konfigurasi ke true. Anda juga dapat melakukan ini dengan satu klik, menggunakan git pull --rebase .

316
28 июля '10 в 23:23 2010-07-28 23:23 Balas diberikan oleh Cascabel 28 Juli '10 pada 23:23 2010-07-28 23:23

TL; DR:

git pull seperti menjalankan get fetch kemudian git merge
git pull --rebase ini sebagai git fetch lalu git rebase

Menanggapi ekspresi pertama Anda,

git pull seperti git fetch + git merge .

"Dalam mode default, git pull adalah singkatan dari git fetch diikuti oleh git merge FETCH_HEAD" Lebih tepatnya, git pull mulai git fetch dengan parameter yang diberikan dan kemudian memanggil git merge untuk menggabungkan kepala cabang yang ditemukan ke cabang saat ini "

(Tautan: https://git-scm.com/docs/git-pull )


Untuk pernyataan / pertanyaan kedua Anda:

"Tapi apa perbedaan antara git pull git fetch + git rebase "

Lagi dari sumber yang sama:
git pull --rebase

"Dengan --rebase ia menjalankan git rebase bukannya git merge."


Sekarang jika Anda ingin bertanya

"perbedaan antara merge dan rebase "

di sini mereka juga menjawab:
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
(perbedaan antara mengubah cara versi direkam dan yang tidak)

0
12 июня '17 в 7:52 2017-06-12 07:52 jawabannya diberikan harshvchawla 12 Juni '17 di 7:52 2017-06-12 07:52

Pertanyaan lain tentang atau Ajukan pertanyaan