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 master
menunjuk ke komit yang juga di dev
cabang atau cabang lainnya. Jika tidak, Anda berisiko kehilangan pekerjaan! Tidak seperti git merge
yang 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 fetch
dan memiliki komitmen baru origin/master
, Anda dapat memindahkan master
cabang 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 master
cabang yang tidak ada di dev
cabang, 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 master
ke cabang sementara dan luncurkan editor pesan komit. Jika Anda ingin komit gabungan terlihat seperti Anda telah menggabungkan dev
cabang master
, edit dari ini:
Merge branch 'master' into temp
untuk ini:
Merge branch 'dev'
Kiat: Anda bisa menggunakan -m "Merge branch 'dev'"
alih-alih -e
lebih cepat.
- Perbarui
master
penunjuk cabang untuk menunjuk ke komit gabungan.
- Lihatlah
dev
rantingnya.
- Hapus paksa cabang sementara.
Ini masih menyentuh pohon kerja Anda, tetapi minimal ya. Itu tidak memutar kembali pohon sampai ke keadaan asli master
hanya untuk membawa perubahan pengembangan sekali lagi. Beberapa mungkin tidak peduli, tetapi bagi yang lain mungkin penting.
git stash
,git checkout master
,git merge dev
,git checkout dev
,git stash pop
.