Jawaban:
GitLab ini "permintaan merge" fitur setara dengan GitHub ini "permintaan tarik" fitur. Keduanya merupakan cara untuk menarik perubahan dari cabang lain atau bercabang ke cabang Anda dan menggabungkan perubahan dengan kode yang ada. Mereka adalah alat yang berguna untuk tinjauan kode dan manajemen perubahan.
Sebuah artikel dari GitLab membahas perbedaan dalam penamaan fitur:
Gabungkan atau tarik permintaan dibuat dalam aplikasi manajemen git dan minta orang yang ditugaskan untuk menggabungkan dua cabang. Alat-alat seperti GitHub dan Bitbucket memilih permintaan tarik nama karena tindakan manual pertama adalah dengan menarik cabang fitur. Alat-alat seperti GitLab dan Gitorious memilih permintaan penggabungan nama karena itu adalah tindakan terakhir yang diminta dari penerima hak. Dalam artikel ini kita akan merujuk mereka sebagai permintaan gabungan.
"Permintaan gabung" tidak boleh dikacaukan dengan git merge
perintah. "Tarik permintaan" juga tidak boleh bingung dengan git pull
perintah. Kedua git
perintah digunakan di belakang layar dalam kedua permintaan tarik dan permintaan gabungan, tetapi permintaan menggabungkan / menarik mengacu pada topik yang jauh lebih luas daripada hanya dua perintah ini.
Mereka adalah fitur yang sama
Gabungkan atau tarik permintaan dibuat dalam aplikasi manajemen git dan minta orang yang ditugaskan untuk menggabungkan dua cabang. Alat-alat seperti GitHub dan Bitbucket memilih permintaan tarik nama karena tindakan manual pertama adalah dengan menarik cabang fitur. Alat-alat seperti GitLab dan Gitorious memilih permintaan penggabungan nama karena itu adalah tindakan terakhir yang diminta dari penerima hak. Dalam artikel ini kita akan merujuk mereka sebagai permintaan gabungan.
Menurut saya, itu berarti kegiatan yang sama tetapi dari sudut pandang yang berbeda:
Pikirkan tentang itu, Alice membuat beberapa komitmen pada repositori A, yang diambil dari repositori Bob.
Ketika Alice ingin "menggabungkan" perubahannya menjadi B, ia sebenarnya ingin Bob "menarik" perubahan ini dari A.
Karena itu, dari sudut pandang Alice, ini adalah "permintaan penggabungan", sementara Bob melihatnya sebagai "permintaan tarik".
Ada sedikit perbedaan dalam hal manajemen konflik. Jika terjadi konflik, permintaan tarik di Github akan menghasilkan gabungan komit di cabang tujuan . Di Gitlab, ketika konflik ditemukan, modifikasi yang dilakukan akan pada gabungan komitmen pada sumber cabang .
Lihat https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
"GitLab menyelesaikan konflik dengan membuat komit gabungan di cabang sumber yang tidak secara otomatis digabung ke cabang target. Ini memungkinkan komit gabungan untuk ditinjau dan diuji sebelum perubahan digabung, mencegah perubahan yang tidak diinginkan memasuki cabang target tanpa meninjau atau menghancurkan membangun. "
GitLab 12.1 (Juli 2019) memperkenalkan perbedaan:
" Gabungkan Permintaan untuk Masalah Rahasia "
Ketika mendiskusikan, merencanakan, dan menyelesaikan masalah rahasia, seperti kerentanan keamanan, bisa jadi sangat menantang bagi proyek-proyek sumber terbuka untuk tetap efisien karena repositori Git bersifat publik.
Pada 12.1, sekarang mungkin untuk masalah-masalah rahasia dalam proyek publik untuk diselesaikan dalam alur kerja yang disederhanakan menggunakan tombol Buat permintaan gabungan rahasia, yang membantu Anda membuat permintaan gabungan dalam garpu pribadi proyek.
Lihat " Masalah rahasia " dari masalah 58583 .
Fitur serupa ada di GitHub, tetapi melibatkan pembuatan garpu pribadi khusus, yang disebut " penasihat keamanan pengelola ".
Seperti disebutkan dalam jawaban sebelumnya, keduanya memiliki tujuan yang hampir sama. Secara pribadi saya suka git rebase dan menggabungkan permintaan (seperti pada gitlab). Dibutuhkan beban dari peninjau / pemelihara, memastikan bahwa sementara menambahkan permintaan menggabungkan, cabang fitur mencakup semua komit terbaru yang dilakukan pada cabang utama setelah cabang fitur dibuat. Berikut ini adalah artikel yang sangat berguna menjelaskan rebase secara detail: https://git-scm.com/book/en/v2/Git-Branching-Rebasing