Soru Git - şubeyi master'a taşı


Gerçek kaynakları olan bir şubem var ve uzun süredir ustalaşmak için herhangi bir taahhütte bulunmadım ve şu anda tamamen güncel değil. Ana içeriğin yerine şubemin içeriğiyle değiştirmek istiyorum. Bunu yapmanın bir yolu, hem şube hem de master'ı kontrol etmek, ana içeriğin içeriğini silmek ve içeriği şubeden ana bilgisayara kopyalamak ve bu itme sonucundan sonra master yapmaktır.

Çalışıyor, ama daha basit bir şekilde yapmak için git komutu olması gerektiğine inanıyorum.

Bunu yapmayı bilen var mı?


32
2018-04-06 13:05


Menşei


Efendinde kalan hiçbir şeyin olmadığını nereden biliyorsun? Şube üzerinde olmayan master üzerinde herhangi bir taahhüt olup olmadığını görmek için 'git log branch..master' ile kontrol edebilirsiniz. Varsa, git checkout master; git birleşme dalı 'bu taahhütlerdeki değişiklikleri içerecektir. - Kent


Cevaplar:


Yeni bir konuma ana noktaya sahip olmak için aşağıdaki komutu kullanabilirsiniz:
git branch -f master branchToMoveMasterTo

Bu aslında ne yapıyor, yeni bir şube oluşturuyor master bu işaret branchToMoveMasterTo. Usta denilen bir şubemiz olduğu için, -f orjinali silmek istediğimizi söylemek master 


56
2018-04-06 13:07



Bu cevap kesinlikle kabul edilmelidir! - user984621
teşekkürler İsa - dezman
Bu iyi çalışıyor. Ama eski ustanın tarihini korumanın bir yolu var mı? Demek istediğim, sıradan bir işlem gibi görünebilir, ama her şeyi değiştirir? - Kun Wu
Eski ustayı korumak istiyorsanız, efendiyi yeni konumuna taşımadan önce aynı SHA'ya işaret eden bir şube oluşturmanız gerekir. Git dalları sadece işaretçilerdir; Onlara bağlı bir tarih yoktur. - Matt
Ayrıca bakınız stackoverflow.com/a/29559362/1741542. Mevcut şube olmamalıdır master (ya da taşımak istediğiniz şube) - Olaf Dietsche