GIT Timpa cabang dengan master


33

Saya memiliki cabang dev lama yang benar-benar ketinggalan zaman. Saya tidak ingin menghapusnya tetapi saya ingin mengganti isinya sepenuhnya dengan cabang utama. Artinya, saya ingin dev_branch = master

Saya mencoba:

git merge -s ours dev_branch

Tidak berhasil meskipun ...

Jawaban:


53

Jika Anda ingin semua perubahan dari masterdalam dev_branch, maka:

git checkout dev_branch
git reset --hard master

Ini hanya berfungsi jika orang lain belum mengkloning repositori.

Jika Anda telah dev_branchmendorong ke kendali jarak jauh, Anda harus melakukan:

git push --force

Untuk mendorong-paksa ke remote. Peringatan: Ini akan mematahkan sejarah cabang untuk orang-orang yang mengkloningnya sebelumnya! Kemudian, orang lain harus melakukan git pull --rebasepada dev_branchuntuk mendapatkan perubahan.


Anda juga dapat mengubah nama cabang dev menjadi sesuatu yang lama dan kemudian membuat cabang baru dari masterdengan nama yang sama:

git branch -m dev_branch old_dev_branch
git branch -m master dev_branch

Atau, gunakan oursstrategi - tidak yakin mengapa itu tidak berhasil untuk Anda:

git checkout master
git merge -s ours dev_branch
git checkout dev_branch
git merge master

Dengan solusi penggantian nama, saya pikir Anda akan menemukan bahwa Anda sekarang tidak dapat mendorong dev_branchke asal (jika ada), dan Anda juga tidak akan lagi memiliki mastercabang secara lokal.
Aidan

Terima kasih @slhck! Untuk beberapa alasan, cabang panggung saya tidak diperbarui setelah melakukan penggabungan normal. Terus mengatakan bahwa cabang panggung saya sudah mutakhir. Menggunakan strategi "milik kita" memecahkan ini untukku.
Slick Shinobi

kita hanya akan memengaruhi potongan yang berkonflik, tetapi dia ingin sepenuhnya memperbarui cabang, bukan hanya konflik!? (ini setidaknya yang harus saya lakukan dan mengapa saya menemukan Q ini) - Saya akan mengganti nama!
Martin Meeser
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.