Pertanyaan lain mengatakan git pullseperti git fetch+ git merge.
Tapi apa perbedaan antara git pullVS git fetch+ git rebase?
Pertanyaan lain mengatakan git pullseperti git fetch+ git merge.
Tapi apa perbedaan antara git pullVS git fetch+ git rebase?
Jawaban:
Seharusnya cukup jelas dari pertanyaan Anda bahwa Anda sebenarnya hanya bertanya tentang perbedaan antara git mergedan git rebase.
Jadi anggaplah Anda berada dalam kasus umum - Anda telah melakukan beberapa pekerjaan pada cabang master Anda, dan Anda menarik dari asal, yang juga telah melakukan beberapa pekerjaan. Setelah pengambilan, semuanya terlihat seperti ini:
- o - o - o - H - A - B - C (master)
\
P - Q - R (origin/master)
Jika Anda bergabung pada titik ini (perilaku default git pull), dengan asumsi tidak ada konflik, Anda berakhir dengan ini:
- o - o - o - H - A - B - C - X (master)
\ /
P - Q - R --- (origin/master)
Jika di sisi lain Anda melakukan rebase yang sesuai, Anda akan berakhir dengan ini:
- o - o - o - H - P - Q - R - A' - B' - C' (master)
|
(origin/master)
Konten pohon kerja Anda harus berakhir sama dalam kedua kasus; Anda baru saja membuat riwayat berbeda sebelum itu . Rebase menulis ulang sejarah Anda, membuatnya seolah-olah Anda telah melakukan di atas cabang master baru asal ( R), alih-alih di tempat Anda awalnya berkomitmen ( H). Anda seharusnya tidak pernah menggunakan pendekatan rebase jika orang lain sudah menarik dari cabang master Anda.
Akhirnya, perhatikan bahwa Anda benar-benar dapat mengatur git pullcabang yang diberikan untuk menggunakan rebase alih-alih menggabungkan dengan mengatur parameter config branch.<name>.rebasemenjadi true. Anda juga dapat melakukan ini untuk satu tarikan menggunakan git pull --rebase.
git pullseperti berlari git fetchlalu git merge
git pull --rebaseseperti git fetchsaat itugit rebase
git pullseperti git fetch+ git merge.
"Dalam mode standarnya, tarikan git adalah singkatan untuk
git fetchdiikuti olehgit mergeFETCH_HEAD" Lebih tepatnya,git pullberjalangit fetchdengan parameter yang diberikan dan kemudian panggilangit mergeuntuk menggabungkan kepala cabang yang diambil ke cabang saat ini "
(Ref: https://git-scm.com/docs/git-pull )
'Tapi apa perbedaan antara git pullVS git fetch+ git rebase'
Sekali lagi, dari sumber yang sama:
git pull --rebase
"Dengan --rebase, ia menjalankan git rebase bukannya git merge."
'perbedaan antara mergedan rebase'
yang dijawab di sini juga:
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
(perbedaan antara mengubah cara riwayat versi dicatat)
git fetch + git rebasekerja perintah dari sekarang. Tidak ada lagi konflik di pohon git kami mulai sekarang :)