EDIT:
Jawaban saya di bawah dokumen cara untuk menggabungkan master
ke aq
, di mana jika Anda melihat rincian penggabungan itu daftar perubahan yang dibuat pada aq
sebelum penggabungan, bukan perubahan yang dibuat padamaster
. Saya menyadari bahwa itu mungkin bukan yang Anda inginkan, bahkan jika Anda mengira itu!
Hanya:
git checkout aq
git merge master
baik-baik saja.
Ya, penggabungan sederhana ini akan menunjukkan bahwa perubahan dari master
dibuat pada aq
saat itu, bukan sebaliknya; tapi tidak apa-apa - karena memang itulah yang terjadi! Kemudian, ketika Anda akhirnya menggabungkan cabang Anda master
, saat itulah akhirnya gabungan akan menampilkan semua perubahan Anda sebagaimana dibuat master
(yang persis seperti yang Anda inginkan, dan merupakan komit di mana orang akan berharap untuk menemukan info itu pula).
Saya telah memeriksa dan pendekatan di bawah ini juga menunjukkan perubahan yang persis sama (semua perubahan dibuat aq
sejak pemisahan asli antara aq
dan master
) seperti pendekatan normal di atas, ketika Anda akhirnya menggabungkan semuanya kembali master
. Jadi saya pikir satu-satunya kerugian nyata (selain dari terlalu kompleks dan non-standar ...: - /) adalah bahwa jika Anda membatalkan kembali perubahan terbaru dengan git reset --hard HEAD~<n>
dan ini melewati penggabungan, maka versi di bawah ini menggulung kembali ke bawah cabang 'salah', yang harus Anda perbaiki dengan tangan (mis. dengan git reflog
& git reset --hard [sha]
).
[Jadi, yang kupikirkan sebelumnya adalah:]
Ada masalah dengan:
git checkout aq
git merge master
karena perubahan yang ditampilkan di komit gabungan (mis. jika Anda melihat sekarang atau nanti di Github, Bitbucket atau penampil riwayat git lokal favorit Anda) adalah perubahan yang dibuat pada master, yang mungkin bukan yang Anda inginkan.
Di samping itu
git checkout master
git merge aq
menunjukkan perubahan yang dibuat dalam aq, yang mungkin adalah apa yang Anda inginkan. (Atau, paling tidak, ini sering yang saya inginkan!) Tetapi gabungan yang menunjukkan perubahan yang tepat ada di cabang yang salah!
Bagaimana cara mengatasinya ?!
Proses penuh, berakhir dengan komit gabungan yang menunjukkan perubahan yang dibuat pada aq (seperti gabungan kedua di atas), tetapi dengan gabungan yang mempengaruhi cabang aq, adalah:
git checkout master
git merge aq
git checkout aq
git merge master
git checkout master
git reset --hard HEAD~1
git checkout aq
Ini: menggabungkan aq ke master, maju cepat yang sama menggabungkan ke aq, membatalkannya pada master, dan menempatkan Anda kembali pada aq lagi!
Saya merasa seperti kehilangan sesuatu - ini sepertinya sesuatu yang jelas Anda inginkan, dan sesuatu yang sulit dilakukan.
Juga, rebase TIDAK setara. Kehilangan cap waktu dan identitas dari komitmen yang dibuat pada aq, yang juga bukan yang saya inginkan.