Jawaban ini telah direvisi, karena pemahaman, diagram, dan kesimpulan saya salah.
git pull
menyebabkan merge commit karena git sedang menggabungkan. Ini dapat diubah dengan mengatur cabang Anda untuk menggunakan rebase daripada merge. Menggunakan rebase daripada merge on a pull memberikan histori yang lebih linier ke repositori bersama. Di sisi lain, komit gabungan menunjukkan upaya pengembangan paralel di cabang.
Misalnya, dua orang bekerja di cabang yang sama. Cabang dimulai sebagai:
...->C1
Orang pertama menyelesaikan pekerjaannya dan mendorong ke cabang:
...->C1->C2
Orang kedua menyelesaikan pekerjaan mereka dan ingin mendorong, tetapi tidak bisa karena mereka perlu memperbarui. Repositori lokal untuk orang kedua terlihat seperti:
...->C1->C3
Jika tarikan diatur untuk digabungkan, repositori orang kedua akan terlihat seperti ini.
...->C1->C3->M1
\ /
->C2->
Dimana M1 adalah komit gabungan. Sejarah cabang baru ini akan didorong ke repo. Jika sebaliknya, tarikan diatur ke rebase, repo lokal akan terlihat seperti:
...->C1->C2->C3
Tidak ada komit gabungan. Sejarah telah dibuat lebih linier.
Kedua pilihan tersebut mencerminkan sejarah cabang tersebut. git memungkinkan Anda untuk memilih riwayat mana yang Anda sukai.
Memang ada tempat di mana rebase dapat menyebabkan masalah dengan cabang yang jauh. Ini bukan salah satu dari kasus tersebut. Kami lebih suka menggunakan rebase karena ini menyederhanakan riwayat cabang yang sudah rumit serta menunjukkan versi riwayat yang berhubungan dengan repositori bersama.
Anda dapat menyetel branch.autosetuprebase = selalu agar git secara otomatis membuat cabang jarak jauh Anda sebagai rebase, bukan master.
git config --global branch.autosetuprebase always
Pengaturan ini menyebabkan git secara otomatis membuat pengaturan konfigurasi untuk setiap cabang jarak jauh:
branch.<branchname>.rebase=true
Anda dapat menyetelnya sendiri untuk cabang jarak jauh Anda yang sudah disiapkan.
git config branch.<branchname>.rebase true
Saya ingin berterima kasih kepada @LaurensHolst karena telah mempertanyakan dan mengejar pernyataan saya sebelumnya. Saya pasti telah belajar lebih banyak tentang bagaimana git bekerja dengan komit pull and merge.
Untuk informasi lebih lanjut tentang merge commits, Anda dapat membaca Berkontribusi pada Proyek di ProGit-Book . Bagian Tim Kecil Pribadi menunjukkan komitmen gabungan.
git log --no-merges