Anda dapat menggunakan kombinasi serial git rebase
dan git branch
untuk menerapkan sekelompok commit ke cabang lain. Seperti yang sudah diposting oleh wolfc , perintah pertama sebenarnya menyalin komit. Namun, perubahan tidak terlihat sampai Anda menambahkan nama cabang ke komit paling atas grup.
Silakan buka gambar di tab baru ...
Untuk meringkas perintah dalam bentuk teks:
- Terbuka gitk sebagai proses independen dengan menggunakan perintah:
gitk --all &
.
- Lari
git rebase --onto a b f
.
- Tekan F5di gitk . Tidak ada yang berubah. Tapi tidak
HEAD
yang ditandai.
- Lari
git branch selection
- Tekan F5di gitk . Cabang baru dengan komitnya muncul.
Ini harus menjelaskan hal-hal:
- Komit
a
adalah tujuan utama baru grup.
- Komit
b
adalah komit sebelum komit pertama grup (eksklusif).
- Komit
f
adalah komitmen terakhir dari grup (inklusif).
Setelah itu, Anda bisa menggunakan git checkout feature && git reset --hard b
untuk menghapus komit c
sampai f
dari feature
cabang.
Selain jawaban ini, saya menulis posting blog yang menggambarkan perintah dalam skenario lain yang seharusnya membantu untuk menggunakannya secara umum.
b
f