Anda harus benar-benar memiliki alur kerja yang memungkinkan Anda melakukan ini semua dengan menggabungkan:
- x - x - x (v2) - x - x - x (v2.1)
\
x - x - x (wss)
Jadi yang harus Anda lakukan adalah git checkout v2.1
dan git merge wss
. Jika karena alasan tertentu Anda benar-benar tidak dapat melakukan ini, dan Anda tidak dapat menggunakan git rebase untuk memindahkan cabang wss Anda ke tempat yang tepat, perintah untuk mengambil satu komit dari suatu tempat dan menerapkannya di tempat lain adalah git-pick ceri . Cukup periksa cabang tempat Anda ingin menerapkannya, dan jalankan git cherry-pick <SHA of commit to cherry-pick>
.
Beberapa cara rebase dapat menyelamatkan Anda:
Jika riwayat Anda terlihat seperti ini:
- x - x - x (v2) - x - x - x (v2.1)
\
x - x - x (v2-only) - x - x - x (wss)
Anda bisa menggunakan git rebase --onto v2 v2-only wss
untuk memindahkan wss langsung ke v2:
- x - x - x (v2) - x - x - x (v2.1)
|\
| x - x - x (v2-only)
\
x - x - x (wss)
Maka Anda dapat bergabung! Jika Anda benar-benar, benar - benar , benar - benar tidak dapat mencapai titik di mana Anda dapat bergabung, Anda masih dapat menggunakan rebase untuk secara efektif melakukan beberapa pemetik ceri sekaligus:
# wss-starting-point is the SHA1/branch immediately before the first commit to rebase
git branch wss-to-rebase wss
git rebase --onto v2.1 wss-starting-point wss-to-rebase
git checkout v2.1
git merge wss-to-rebase
Catatan: alasan mengapa diperlukan beberapa pekerjaan ekstra untuk melakukan ini adalah karena itu membuat duplikat komit dalam repositori Anda. Ini sebenarnya bukan hal yang baik - inti dari percabangan dan penggabungan yang mudah adalah untuk dapat melakukan segalanya dengan membuat komit (s) satu tempat dan menggabungkan mereka ke mana pun mereka dibutuhkan. Duplikat komit berarti niat untuk tidak menggabungkan kedua cabang tersebut (jika Anda memutuskan ingin melakukannya nanti, Anda akan mendapatkan konflik).