2016-04-04 25 views
1

arasında ileri ve geri geçiş yaptıktan sonra eksik eşleşmeler Gitmek için yeniyim, lütfen bana eşlik edin. Yerel repo'mda, bir süredir bu şubede bir çok taahhütte çalışıyorum. Bir süredir zorlanmadım çünkü bu projede çalışan tek kişi benim. Bugün nihayet kalkınma dalını ana şubeye birleştirmenin zamanı olabileceğine karar verdim, böylece bir git checkout master yaptım. (Önceden bir git status yaptım ve eklenmesi gerekmiyordu). Şubeler

usta geçtikten sonra, ben bir git checkout check_pburst ( check_pburst benim geliştirme dalının adı) ile benim geliştirme şube geri dönmek ama şimdi sadece ben itti zamana kadar hareketin görebilirsiniz verdi. Uzaktan izleme dalında olduğumu hissediyorum (belki?). git log, birçok taahhütümün gösterilmediğini gösteriyor. Gönderdiğim zamanı geçen işlemleri görebileceğim bir yol var mı? Keşke size daha fazla bilgi verebilmeyi isterdim ama yanlışlıkla git bash'ı kapattım ve şimdi aldığım mesajlar artık görülemiyor.

Son işlemlerimi nasıl kurtarabilirim?

Güncelleme: Bu konuya daha fazla baktıktan sonra, bir git branch yaptım ve sadece iki dalı gördüm (bu da mantıklı). Daha sonra bir git checkout tab tab yaptım ve daha fazla şube listelendi, ancak bu dallardan hiçbiri benim son işlemlere sahip değildi. Sonra en son taahhüdümü gösteren bir git reflog yaptım. git checkout 25edfe8 yaptım. Sonra bir git branch yaptı ve benim son şube bizim tartışmalara itibaren Detached HEAD at 25edfe8

+0

Başlıca işlemleri gerçekten yaptığınızdan emin misiniz? İşinizi başka bir bilgisayarda yedeklemeniz gerektiğinden emin olmak için akıllıca 'git push origin dev_branch_name 'yapılıyor muydu? Git'deki komisyonlar genellikle spor çorapları gibi kaybolmuyor. –

+0

@TimBiegeleisen Yaptığım git -A 've 'git commit -m' mesajı '' defalarca yaptım .... Ama hayır sadece bu devasa dalda bir kere ittim. Ve bu uzun zaman önceydi! – Dzhao

+0

Buradaki taahhüt, bir yerde, ideal olarak iş yaptığınız dalda olmalıdır.Hiç bir "git log" yapıp bu işleri görüyor musunuz? –

cevap

1

oldu işlemek fark, bu müstakil kafa halde yerine, özellik dalı check_pburst çalışan olmuştu belli oldu. Ayrılmış bir durumdan gerçek bir şube haline getirilecek standart çözüm ilk olarak bir şube oluşturur. senin müstakil durumdan aşağıdakileri yapın:

git checkout -b check_pburst_detached 

Bu noktada, yaptığınız tüm başıboş hareketin içeren bir iyi niyetli Git şube oluşturduk. Bu uzaktan kumanda için bu iterek yedekleme yapıldığı için bu noktada ihtiyatlı olur: sonraki herhangi bir noktada bir hata veya kaybolmak yaparsanız

git push origin check_pburst_detached 

, her zaman bu dal, geri "reset" hangi Bildiğiniz her şeyi içerir. rebase tamamlayın

git checkout check_pburst_detached 
git rebase check_pburst 

: gerçekte özellik dalında tüm müstakil kaydedilmesini korumak istediğimiz için

, en iyi seçenek check_pburst üzerinde check_pburst_detached rebase ve ardından eski ile ikincisi hızlı ileri etmek olabilir Bu birleştirme sıfır çatışmaları olmalıdır

git checkout check_pburst 
git merge check_pburst_detached 

check_pburst_detached şube öndearasında olması gerektiği gibi,: check_pburst_detachedcheck_pburst üzerine ve sonra hızlı ileri birleştirme. Özellik branşmanınızın check_pburst gerçekten de kaybolan işleri olduğunu doğrulayabilirsiniz.