2016-03-23 16 views
0

İki şubem var, bb ve master. bb üzerinde çalıştım, bazı değişiklikler yaptım, bunları Github'a aktardım ve master'a bağlandığım bir çekme isteği yaptı. Sonra bir üretim uygulamasıyla ilgili bir sorunla karşılaştım ve bb'daki değişikliklerle ilgili bir sorun olduğunu düşündüm, bu yüzden Github'da revert düğmesini tıklattım.Bir şubeden geri alınan değişiklikleri Github'daki master'a yeniden birleştirin mi?

Sorun kodu ile ancak sunucuya yüklenen olmasaydı bb değişikliklere ihtiyaç duyduğu bir veri dosyası ile olmadığı ortaya çıktı, bu yüzden bb gelen değişiklikler sonuçta usta birleştirilecek istedi ... Yani, yeni bir PR almak için bb (bazı boşlukları ekledi) anlamsız bir değişiklik yaptım. Ancak, PR sadece bbmaster'a göre diğer tüm değişiklikler için değil, boşluk içindi. PR'yi birleştirdim, ancak kesinlikle yalnızca boşluk değişikliği uygulandı.

Yani şimdi Github bir dosyanın foo.py iki sürümü, bb içinde bir ve master bir vardır ve ben bir çekme isteği yapmaya çalıştığınızda, o karşılaştırmak için bir şey yok" söylüyor. master kadardır bb'dan tüm taahhütler ile tarih. Ha?

Github'ü, bbmaster içine foo.py arasındaki değişiklikleri gerçekten birleştirmek için nasıl alabilirim? (Ben daha önce tam olarak bu değişiklikleri birleştirmiş çünkü kapalı atılmış galiba ... ama master içinde foo.py mevcut durumu bb içinde farklıdır.)

cevap

2

Sizin en kolay düzeltme terminaline baş etmektir. Henüz yapmadıysanız projeyi kontrol edin.

git clone <url> my_project 
cd my_project 
git log (Find the id of the revert-- which is just a commit) 
git revert (commit_id) 

Ardından bb yaptığınız değişiklikleri itmek ve diğer dallarda çalışan diğer insanlar clobber edeceğini usta değişiklikler itti çünkü ben bu noktada geri alma dönemezsiniz usta

+0

için bir çekme isteği oluşturun. Saçma, sanırım sorunu anladım. Sorun şu ki, bb'deki değişiklikler “master” deki değişikliklerden daha eski. Şimdi düşünebildiğim tek şey, boş bir dosyaya foo.py' değiştirmek gibi gerçekten hacky gibi bir şey yapmak, sonra da 'foo.py'de değişiklikleri geri koymak ve PR'yi alacağım. istemek. Daha iyi bir yolu var mı? – dslack

+0

Teknik olarak, taahhüt zaten masterde. Master'ı dalına birleştirebilir ve sonra değişiklikleri yapabilirsin. Ama bence yeni bir şube oluşturmak ve değişiklikleri tekrar yapmak için daha iyi olabilirsiniz. Taahhütünü kesebilirsin ama sonra aynı noktaya geri döneceksin. Çünkü taahhüt ustadır. Yani ya ustayı birleştirin ve değişimi yapın ya da master'den yeni bir şube oluşturun ve değişiklikleri yapın. –

+0

Yaptığınız değişiklikler dosyanızın geçmişinde olacaktır. Böylece yeni bir şube oluşturup eski işlemimle karşılaştırır ve değişiklikleri alırım. O zaman it ve it. Çekme isteği oluşturun ve işiniz bitti. –

İlgili konular