SORU
21 Mart 2012, ÇARŞAMBA


git zorla güncellemeden sonra çekin

Ben bazı git rebase işleyen, git push --force kötü olan (biliyorum) tıpkı ezilmiş.

Şimdi diğer kodlayıcıların farklı bir geçmişi var ve bunu yaptıklarında ** 5, gıt birleştirme. Bu, rm my-repo; git clone git@example.org:my-repo.git bir işin dışında düzeltmek için herhangi bir yolu var mı?

git push --force ama git pull --force tersi istenen sonuçları vermedi böyle bir şeye ihtiyacım var.

CEVAP
21 Mart 2012, ÇARŞAMBA


Bu yeni bir taahhüt almak

git fetch

Reset

Yerel bir şube için commit git reset kullanarak sıfırlayabilirsiniz

Değişim için yerel bir şube tamamlama

git reset origin/master --hard

Doktorların dediği gibi olsa da, dikkatli olun:

Sıfırlar endeksi ve çalışma ağacı. Çalışma ağaç beri izlenen dosyaları herhangi bir değişiklik atılır.

Eğer yerel olarak istediğin şey neyse, aslında tutmak istiyorsanız - --softsıfırlama yerine. bu şube için yapılanların özeti, ama çalışma dizinindeki tüm dosyaları (ve daha sonra onları işlemek) değiştirmek değil güncelleme olacak.

Rebase

Yerel işleyen başka bir taahhüt/şube git rebase kullanma üzerine çalabilirsiniz

git rebase -i origin/master

bu her bireyin geçmişinde üstüne rebasing sen olmadığını taahhüt uygulamak için nasıl seçebileceğiniz etkileşimli modda rebase çağırır.

Eğer yaparsa kaldırılır (git push -f) zaten çekti içine yerel tarih, onlar olarak listelenen işleyen olacak yeniden - ne yapmalıyım silinmesini parçası olarak rebase ya da onlar sadece yeniden dahil içine tarihi için şube ve yeniden uzak tarihi üzerine ileri itin.

Yukarıdaki bilgileri hakkında daha fazla bilgi ve örnekler (veya diğer) git command --help komutlar yardımı kullanın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DJPixcell

    DJPixcell

    20 NİSAN 2007
  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • Samantha Crain

    Samantha Cra

    30 EKİM 2008