2011-11-21 15 views
9

Pro Git kitabında bir şeyler okuduktan sonra reset ile uğraşıyordum.Git: reset --hard şimdi geçmişte sıkışmış durumdayım

Temel olarak, bir önceki düzeltme 12'ye kadar bir reset --hard yapıyordum.

Bugüne veya en son işlemlere geri dönmüş gibi görünmüyorum. Ben ORIG_HEAD kullanarak reset denedim ve ileri gitmek için revizyon sha1 de besleme.

Çalışırken git status Yardımım: Şubeniz 12 taahhüt tarafından gerisinde ve hızlıca iletilebilir.

HEAD'i en son işleme nasıl geri alabilirim?

cevap

4

Zaten sıfırladığınız 12 işi zorlamışsınız gibi görünüyor. o zaman, durum buysa REMOTE (genellikle origin) ve BRANCH_NAME mevcut şube adıdır uzak adıdır

git merge --ff-only REMOTE/BRANCH_NAME 

çalışmalıdır.

+0

Bu, ağ erişimi olmadan bile yaptı!Serin olsa da, gerçekten bağlanamayacağını düşündüğüm bir uzak şubeyle nasıl birleşebileceğini gerçekten anladım. – Gabe

+1

'merge's yerel işlemlerdir (bir ağ bağlantısı gerektiren' getirme '). –

11

Gitmek istediğiniz yeri bulmak için reflog'u kullanın. git reflog'u kullanarak alabilir ve daha sonra uygun işleme sıfırlayabilirsiniz. , Sıfırlama yaptığımız beri hiçbir şey yapmadım

git reset --hard '[email protected]{1}' 

varsayarsak yapmalı.

+0

Teşekkür ederim, ama yardımcı gözükmüyor. Reflog tarafından gösterilen en son işlem şu anda üzerinde olduğum revizyon, 12 eksik olanları göstermiyor :( – Gabe

+0

Önceki ne gösteriyor? Reflog, değişiklikleri KAFA'da izler –

+0

'git reset - zor 'HEAD @ {1}' 've şimdi git durumuna göre şimdi sadece 11'nin arkasında işlem yapıyorum :) – Gabe

3

bir başka yolu (reflog yanında) şube Gördüğünüz neden olan, uzak bir dalı olarak, remotes ad tarafında başvurulan gibi görünüyor gerçeğini kullanmak olacaktır:

Your branch is behind by 12 commits and can be fast-forwarded. 

Basit

Yerel şubenizin HEAD nolu uzak şubenizin bulunduğu yere geri hızlıca iletmek için

.

İlgili konular