Saya punya dua cabang, email
dan staging
. staging
adalah yang terbaru dan saya tidak lagi membutuhkan perubahan lama di email
cabang, namun saya tidak ingin menghapusnya.
Jadi saya hanya ingin membuang semua konten staging
ke dalam email
sehingga keduanya menunjukkan komit yang sama. Apakah itu mungkin?
Jawaban:
Anda dapat menggunakan strategi penggabungan 'milik kami':
sumber
;
di akhir setiap perintah? Saya melakukannya tanpa;
dan tampaknya berfungsi. Juga jawaban ini tidak lengkap, langkah ketiga adalah untuk checkout cabang lama (email) dan kemudian bergabung dengan pementasan lagi.git rebase -s theirs <oldbranc> <newbranch>
berfungsi juga (tidak peduli cabang mana Anda berada). Perhatikan bahwa dalam rebase 'milik mereka' sebenarnya merupakan cabang baru karena 'milik kita' adalah kepala yang saat ini kita lamarkan komit.Jika Anda hanya ingin dua cabang 'email' dan 'staging' sama, Anda dapat menandai cabang 'email', lalu setel ulang cabang 'email' ke yang 'staging':
Anda juga dapat rebase cabang 'pementasan' di cabang 'email'. Tetapi hasilnya akan berisi modifikasi dari dua cabang.
sumber
git checkout
,git check
tidak ada setahu sayaemail
kepala cabang harus menunjuk ke kepala yang samastaging
dan mereka berdua akan memiliki komitmen yang sama, sejarah yang sama.Saya telah melihat beberapa jawaban dan itulah satu-satunya prosedur yang memungkinkan saya memperbaikinya tanpa konflik.
Jika Anda ingin semua perubahan dari branch_new di branch_old, maka:
Setelah menerapkan keempat perintah tersebut, Anda dapat menekan branch_old tanpa masalah
sumber
Jawaban lain memberi saya petunjuk yang benar, tetapi mereka tidak sepenuhnya membantu.
Inilah yang bekerja untuk saya:
Tanpa langkah keempat menyatu dengan strategi kita, dorongan itu dianggap sebagai pembaruan yang tidak terlalu cepat dan akan ditolak (oleh GitHub).
sumber
merge -m 'This is not my beautiful house.' -s ours origin/email
.Jika Anda seperti saya dan Anda tidak ingin berurusan dengan penggabungan, Anda dapat melakukan langkah-langkah di atas, kecuali menggunakan kekuatan alih-alih penggabungan, karena itu akan membuat jejak kertas log yang mengganggu:
Catatan: Ini hanya jika Anda BENAR-BENAR tidak pernah ingin melihat barang-barang di email lagi.
sumber
Saya ingin menggabungkan dua cabang sehingga semua konten dalam
old_branch
diperbarui dengan isi darinew_branch
Bagi saya ini bekerja seperti pesona:
sumber
Bagaimana tentang:
sumber
Jawaban lain tampak tidak lengkap.
Saya sudah mencoba sepenuhnya di bawah ini, dan itu berhasil dengan baik.
CATATAN:
1. Buat salinan repositori Anda sebelum Anda mencoba di bawah ini, agar aman.
Rincian:
1. Semua pengembangan terjadi di cabang dev
2. cabang qa hanya salinan yang sama dari dev
3. Waktu ke waktu, kode dev perlu dipindahkan / ditimpa ke cabang qa
jadi kita perlu menimpa cabang qa, dari cabang dev
Bagian 1:
Dengan perintah di bawah ini, qa lama telah diperbarui ke dev yang lebih baru:
Komentar otomatis untuk dorongan terakhir memberi di bawah:
Komentar ini terlihat terbalik, karena urutan di atas juga terlihat terbalik
Bagian 2:
Di bawah ini adalah tak terduga, komitmen lokal baru di dev, yang tidak perlu
jadi, kita perlu membuang, dan membuat dev tidak tersentuh.
Bagian 3:
Verifikasi semuanya seperti yang diharapkan:
Itu saja.
1. qa lama sekarang ditimpa oleh kode cabang dev baru
2. lokal bersih (asal terpencil / dev tidak tersentuh)
sumber
Cara termudah untuk melakukannya:
Sekarang cabang email dan pementasan adalah sama.
sumber
email
cabang. Ini seperti menghapusemail
cabang dan membuatnya baru di kepalastaging
cabang.sumber
Yang ini tidak mengubah cabang baru yang lebih baru, dan memberi Anda kesempatan untuk melakukan modifikasi lebih lanjut sebelum komit terakhir.
sumber