Untuk menggabungkan cabang saat ini ke cabang lain tanpa memeriksa cabang lainnya:
Penggabungan maju cepat
Ini sangat mudah. Menurut definisi, gabungan maju-cepat berarti penunjuk cabang dipindahkan di depan di pohon komit. Jadi yang perlu Anda lakukan hanyalah mensimulasikan bahwa:
git branch -f master dev
Peringatan: Ini mengasumsikan bahwa mastermenunjuk ke komit yang juga di devcabang atau cabang lainnya. Jika tidak, Anda berisiko kehilangan pekerjaan! Tidak seperti git mergeyang akan membuat komit gabungan (atau mengeluh) ketika fast-forward tidak mungkin, metode ini secara diam-diam memaksa penunjuk cabang untuk menunjuk ke komit lain.
Ini juga mengasumsikan Anda satu-satunya yang mengerjakan repo, dan / atau Anda tahu apa yang Anda lakukan.
Kiat: Jika Anda melakukan git fetchdan memiliki komitmen baru origin/master, Anda dapat memindahkan mastercabang tanpa memeriksa menggunakan:
git branch -f master origin/master
Gabungkan melalui gabungkan komit
Ini tidak selalu memungkinkan. Untuk membuat komit gabungan, Anda harus melakukan operasi gabungan. Dan untuk melakukan operasi penggabungan, Anda harus memiliki komit di cabang lain yang tidak ada di cabang saat ini.
Jika Anda memiliki komitmen di mastercabang yang tidak ada di devcabang, Anda dapat:
Penafian: Ini hanyalah bukti konsep, hanya untuk menunjukkan kadang - kadang mungkin untuk melakukan penggabungan ke cabang lain tanpa memeriksa. Jika Anda ingin menggunakannya setiap hari, Anda mungkin ingin membuat alias untuk itu menggunakan pengalihan shell atau membuat skrip shell untuk itu. Kemudian lagi, Anda juga dapat membuat skrip shell untuk proses yang lebih pendek seperti ditunjukkan dalam pertanyaan.
git checkout -b temp
git merge --no-ff -e master
git branch -f master temp
git checkout dev
git branch -D temp
Penjelasan:
- Lihatlah cabang sementara yang menunjukkan komit yang sama dengan cabang saat ini.
Gabungkan masterke cabang sementara dan luncurkan editor pesan komit. Jika Anda ingin komit gabungan terlihat seperti Anda telah menggabungkan devcabang master, edit dari ini:
Merge branch 'master' into temp
untuk ini:
Merge branch 'dev'
Kiat: Anda bisa menggunakan -m "Merge branch 'dev'"alih-alih -elebih cepat.
- Perbarui
masterpenunjuk cabang untuk menunjuk ke komit gabungan.
- Lihatlah
devrantingnya.
- Hapus paksa cabang sementara.
Ini masih menyentuh pohon kerja Anda, tetapi minimal ya. Itu tidak memutar kembali pohon sampai ke keadaan asli masterhanya untuk membawa perubahan pengembangan sekali lagi. Beberapa mungkin tidak peduli, tetapi bagi yang lain mungkin penting.