Saya memiliki dua cabang fitur (pribadi) yang sedang saya kerjakan.
a -- b -- c <-- Master
\ \
\ d -- e <-- Branch1
\
f -- g <-- Branch2
Setelah mengerjakan beberapa cabang ini, saya menemukan bahwa saya memerlukan perubahan dari Branch2 di Branch1. Saya ingin mengubah perubahan Branch2 ke Branch1. Saya ingin mengakhiri dengan yang berikut ini:
a -- b -- c <-- Master
\
d -- e -- f -- g <-- Branch1
Saya cukup yakin saya harus mengubah cabang kedua menjadi yang pertama, tetapi saya tidak sepenuhnya yakin tentang sintaks yang benar dan cabang mana yang seharusnya saya periksa.
Akankah perintah ini menghasilkan hasil yang diinginkan?
(Branch1)$ git rebase --onto Branch1 Branch2
git
git-rebase
feature-branch
Arjen
sumber
sumber
git rebase -
. lihat jawaban saya di bawah iniJawaban:
Beralih ke Branch2
Terapkan perubahan saat ini (Branch2) di atas perubahan Branch1, tetap di Branch2:
Yang akan memberi Anda hasil yang diinginkan di Branch2:
Anda dapat menghapus Branch1.
sumber
git rebase
sambil tetap di Branch1 akan menulis ulang sejarah Branch1 untuk memiliki perubahan Branch1 di atas semua yang disalin dari Branch2. Itu akan menghasilkan perintah komit berikuta - b - f - g - c' - d' - e'
,.Catatan: jika Anda aktif
Branch1
, Anda akan dengan Git 2.0 (Q2 2014) dapat mengetik:Lihat komit 4f40740 oleh Brian Gesiak
modocache
:rebase
: izinkan "-
" kependekan dari cabang sebelumnyasumber
Saya tahu Anda diminta untuk Rebase, tapi saya akan Cherry-Pilih komitmen saya ingin pindah dari Branch2 ke Branch1 sebagai gantinya. Dengan begitu, saya tidak perlu peduli ketika cabang mana yang dibuat dari master, dan saya akan memiliki lebih banyak kontrol atas penggabungan.
sumber