Muhtemel Kopya:
Geçerli Git dalını ana dal yap
Git depomda iki dal var:
master
seotweaks
(orijinal olarak master
tarafından oluşturulmuştur)Hızlı bir şekilde master
ile birleştirmek amacıyla seotweaks
oluşturdum. Ancak, bu üç ay önceydi ve bu daldaki kod master
dan 13 sürüm ileride.
Artık master
daki tüm kodlar az ya da çok eskimiş olduğundan, etkin bir şekilde çalışan ana dalımız haline geldi.
Çok kötü bir uygulama olduğunu biliyorum, dersimi aldım.
Masterdalının tüm içeriğini
seotweaks` dalındakilerle nasıl değiştirebileceğimi biliyor musunuz?
Sadece master
içindeki her şeyi silip birleştirebilirim, ancak bu en iyi uygulama gibi gelmiyor.
Bunun gibi seotweaks ile master'ın üzerine yazmak için "ours" birleştirme stratejisini kullanabilmelisiniz:
git checkout seotweaks
git merge -s ours master
git checkout master
git merge seotweaks
Sonuç olarak master'ınız artık esasen seotweaks olmalıdır.
(-s ours
, --strategy=ours
ifadesinin kısaltmasıdır)
Dokümanlardan]1 'ours' stratejisi hakkında:
Bu, herhangi bir sayıda başlığı çözer, ancak birleştirme sonucunda ortaya çıkan ağaç her zaman geçerli dal başının ağacıdır ve diğer tüm dallardan gelen tüm değişiklikleri etkili bir şekilde göz ardı eder. Yan dalların eski geliştirme geçmişinin yerini almak için kullanılması amaçlanmıştır. Bunun özyinelemeli birleştirme stratejisindeki -Xours seçeneğinden farklı olduğunu unutmayın.
Yorumlardan güncelleme: Eğer fatal: ilişkisiz geçmişleri birleştirmeyi reddediyor
mesajı alırsanız, ikinci satırı şu şekilde değiştirin: git merge --allow-unrelated-histories -s ours master
Master dalını başka bir dalla yeniden adlandırmak için git branch -m'yi kullanmaya ve ardından seotweaks dalını master olarak yeniden adlandırmaya ne dersiniz? Bunun gibi bir şey:
git branch -m master old-master
git branch -m seotweaks master
git push -f origin master
Bu işlem origin master'daki komutları kaldırabilir, lütfen git push -f origin master
komutunu çalıştırmadan önce origin master'ınızı kontrol edin.
Uzakta master'ı yeniden adlandırabilir/kaldırabilirsiniz, ancak birçok kişi çalışmalarını uzak master dalına dayandırmışsa ve bu dalı yerel depolarına çekmişse bu bir sorun olacaktır.
Herkes 'seotweaks
' dalı üzerinde çalışıyor gibi göründüğü için burada durum böyle olmayabilir.
Bu durumda yapabilirsiniz:
git remote --show çalışmayabilir.
(Remote'unuzun yerel deponuzda nasıl tanımlandığını kontrol etmek için bir git remote show
yapın. Ben 'origin
' varsayacağım)
(GitHub ile ilgili olarak house9 şu yorumu yapıyor: "Ek bir adım daha atmam gerekti, GitHub'da 'Admin
' düğmesine tıklayıp 'Default Branch
' seçeneğini 'master
' seçeneğinden başka bir seçeneğe ayarladım, daha sonra geri koydum")
git branch -m master master-old # rename master on local
git push origin :master # delete master on remote
git push origin master-old # create master-old on remote
git checkout -b master seotweaks # create a new local master on top of seotweaks
git push origin master # create master on remote
Ama yine de: