SORU
26 HAZİRAN 2011, Pazar


Bir çekme isteği ile birleştirme geri?

Biri bunu yapmış olamazlar olan bir çekme isteğini kabul ettim. Şimdi kırık bir kod demet birleştirdik. Nasıl bir çekme isteğini geri almak mı? Sadece değişiklikleri birleştirme önce taahhüt dönmek için gidiyordu, ama işleyen bir grup olarak birleştirilmiş fark ettim. Şimdi birleştirme önce günden bu kişi tüm bu haller vardır. Bu nasıl kapatabilirsin?

CEVAP
26 HAZİRAN 2011, Pazar


Grafik işlemek de (gitk veya benzeri bir program ile). Çekme isteğini tamamlar ve kendi tamamlar ve bir taahhüt ederseniz hızlı ileri birleştirme olsaydı da birleştirme. Sen kendi son birleştirme önce taahhüt eder ve bu taahhüt şube reset bulmak zorunda.

Eğer şubenin reflog varsa (birleştirme önce taahhüt bulmak daha da kolay olmalı.)


(Yorum daha fazla bilgi sonra: Edit)

Okay, lets look at the graph:

screenshot 1

Son (en sağdaki) commit senin yanlış olduğunu düşünüyorumçekme isteği ile birleştirmemavi çizgi burada görülen birleştirilmiş., Soniyitaahhüt siyah çizgi, burada kırmızı işaretli önce olur

enter image description here

Bu taahhüt sıfırlamak, ve ince olmalıdır.

Bunun anlamı, yerel çalışma kopyası bu (örneğin daha kaydedilmemiş işler yok olduğundan emin olduktan sonra, git ile zula):

git checkout master
git reset --hard 7a62674ba3df0853c63539175197a16122a739ef
gitk 

Şimdi gerçekten orada işaretledim kayıt üzerinde olduğunuzu ve onun soy çekildi, hiçbiri göreceksiniz.

git push -f origin master

(github uzak origin - başka adını değiştirmek) olarak adlandırılır.

Şimdi her şey github da bakmak gerekir. Eğer hala depoda olacak haller, ancak herhangi bir şube tarafından erişilebilir, böylece herhangi bir zarar yok. (Ve hala RogerPaladin depo olacak, tabii ki.)

(Bir Github aynı şeyi yapıyor bir şekilde web-sadece belirli olabilir, ama Github ve çekme isteği yönetim sistemi ile çok aşina değilim.)

Noteğer başkası zaten yanlış bir taahhüt ile master yapmış olabilir eğer, o zaman şu anda var, ve gerçekten geri katkıda bulunabilir mi aynı sorun var. yeni ana sürüm için sıfırlamadan önce.

Eğer ki bu oldu, ya da sadece istediğiniz herhangi bir sorunları önlemek için kullanın git revert komut yerine git reset döner değişiklikleri ile yeni bir taahhüt yerine ayarı tekrar eski olanıdır. (Bazı insanlar hiç basılmamış dalları ile sıfırlama yapman gerektiğini düşünüyorum.) Bunu yapmak için nasıl bu soruya başka cevaplar bakın.

Gelecek için:

Eğer sadece bazı RogerPaladin şubesinde işleyen istiyorsanız, merge yerine cherry-pick kullanmayı düşünün. Ya da ayrı bir dal taşımak RogerPaladin ve yeni bir çekme isteği göndermek için iletişim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • B3ASTTY™

    B3ASTTY™

    27 Mayıs 2013
  • kidrauhl

    kidrauhl

    15 Ocak 2007