Yanıtlar:
Bir dosya değiştirilmiş ancak henüz eklenmemiş (aşamalı), tamamen "özel" olduğuna inanıyorum.
Dizin veya HEAD sürümü üzerine yazılırsa GIT tarafından geri yüklenemeyeceği anlamına gelir (mevcut çalışmanızın bir kopyasına sahip olmadığınız sürece). "
"Özel" içerik yalnızca geçerli dizininizde görünür, ancak Git'e hiçbir şekilde kaydedilmez.
git checkout --) tarafından değiştirilmişse , bu işlemi belki de geri alabilmesini beklerdim reflog. Bu yanlış bir beklenti mi?
git checkout folders/subfolders/fileama folderişime girdikten sonra kazayla enter tuşuna bastım . / klavyeme girmekten 1 cm uzakta ve sık sık farklı klavye düzenlerine sahip makineler arasında geçiş yapıyorum, bu yüzden parmaklarımın 10-15 dakikaları yeni pozisyonlara alışıyor. Git'in işini kaybetmemek için yolunun gitmediğini söylese de, 2018'de git'in dosyaları çöpe attığına inanmak zor.
Bir "profesyonel" IDE kullanıyorsanız, dosyaları yerel bir Geçmişten geri yükleyebilirsiniz. Örneğin Rubymine'de dosyaları sağ tıklayabilir ve git değişikliklerinden bağımsız bir değişiklik geçmişini izleyebilirsiniz, şimdi birkaç kez beni kurtardı ^^
Sublime Text gibi bir editörde çalışıyorsanız ve söz konusu dosya hala açıksa, ctrl + z tuşlarına basabilirsiniz ve git checkout'tan önceki durumuna geri dönecektir.
Maalesef değişiklikleriniz kayboldu. Özel değişikliklerinizin üzerine yazılır. Eğer yapmadıysa git stashönce yapma ödeme ...
Daha parlak taraftan alın: Artık işleri daha iyi uygulayabilirsiniz;)
IDE'nizdeki yerel geçmişi kontrol edin.
OS X üzerinde geliştirme mi yapıyorsunuz? Kullanımı Xcode? Şansınız var!
Qungu tarafından yapılan bir açıklamada açıklandığı gibi , OS X, zaman makinesi kullanmasanız bile dosyaların otomatik olarak kaydedilmiş bir sürüm geçmişini korur .
Dolayısıyla, evcilleştirilmemiş yerel değişikliklerinizi dikkatsizce havaya uçurduysanız git checkout ., muhtemelen tüm işinizi nasıl kurtarabilirsiniz.
Birisi bu iş parçacığını XCode'da bazı işleri yok ettiğinde bulursa, Otomatik Kaydetme geçmişini almanın bir yolu vardır. XCode'un otomatik kaydetme geçmişini görmek için bir menü girişi yoktur, ancak saklar. Söz konusu dosyaları TextEdit'te açarsanız, Geri dönebilir ve Dosya> Geri Al altındaki Otomatik Kaydetme geçmişine bakabilirsiniz.
Bu harika ve dün benim için bir günlük iş hakkında iyileşti.
Sen sorabilir git komut satırı UI yok Neden," yazılım mühendisliğinde kullanılan premier VCS2016 2017 20182019, en azından dosyaları uçurmadan önce yedekle? Bildiğiniz gibi, son otuz yıldır iyi yazılmış yazılım araçları. "
Veya belki de, "Neden bu delicesine harika dosya geçmişi özelliği TextEdit'te erişilebilir, ancak gerçekten ihtiyacım olan yerde Xcode'da değil?"
... ve her ikisi de, sanırım, size sektörümüz hakkında çok şey anlatacak. Ya da belki gidip bu araçları tamir edersiniz. Bu süper olurdu.
Modelmaalesef olduğu için benim için çalışmadı
VSCODE'da ctrl + z (geri al) benim için çalıştı
Bunun git checkout .yerine yaptım git add .ve tüm dosya değişiklikleri kayboldu.
Ama şimdi command + zmac'umda kullanarak , değişiklikleri kurtardım ve benim için bir ton çalışma kaydetti.
Değişiklikleri daha önce saklamış olmanız durumunda (örneğin, yeniden bastırmadan önce), bu muhtemelen yardımcı olacaktır
Git'te bırakılan bir depo nasıl kurtarılır?
değişiklikleri daha önce 'saklamış' olsanız bile.
Bu tür bir durum için etkili bir kurtarıcı Time Machine (OS X) veya benzer bir zaman tabanlı yedekleme sistemidir. Beni birkaç kez kurtardı çünkü geri dönüp sadece bir dosyayı geri yükleyebilirim.
Sadece başıma geldi, saatlerce çalışma içeren bir klasöre baktım! Neyse ki, IDE Netbeans'imin her dosyanın bir geçmişini sakladığını öğrendim, bu da birkaç şeyi manuel olarak düzeltmem gerektiğine rağmen malzemelerin% 99'unu geri kazanmamı sağladı.
Normalde tüm işlerim bir dropbox klasöründe var. Bu, geçerli klasörün yerel makinem ve Github dışında kullanılabilir olmasını sağlar. Ben git dışında bir "sürüm kontrolü" garanti benim diğer adım olduğunu düşünüyorum.Dosyanızı dropbox dosyalarınızın önceki sürümlerine döndürmek için bunu takip edebilirsiniz.
Bu yardımcı olur umarım.
Teknik olarak evet. Ancak sadece belirli durumlarda. Örneğin kod sayfanız yukarıdaysa ve git checkout'a basarsanız ve yanlışlıkla yanlış sayfayı veya başka bir şeyi kontrol ettiğinizi anlarsınız. Sayfaya gidin ve geri al'ı tıklayın. (benim için, komut + z) ve eski güzel git kasasını vurmadan önce bulunduğunuz yere geri dönecektir.
Sayfanız kapalıysa bu işe yaramaz ve sonra git kasasına basarsanız. Yalnızca gerçek kod sayfası açıksa çalışır
Eğer bir terminal / ile çalışıyorsanız açık istemi cmd ve unstaged değişiklikleri (gösterdi olurdu herhangi git komutları kullanılır diff, add -p, checkout -psen unstaged değişiklikleri bulacaksınız, vs.), ve terminal / beri istemi cmd kapatmamışsanız yukarıda belirtilen git komutlarını çalıştırdığınız yere gittiğinizde hala kullanılabilir.
Kanka,
Diyelim ki benim gibi şanslı bir adamsın, editörüne geri dön ve geri al (mac için command + Z), kayıp içeriğinizi dosyada görmelisiniz. Umarım yardımcı olmuştur. Tabii ki, bu sadece mevcut dosyalar için çalışacaktır.
Belki de değişikliklerin kaybolmaz. "Git reflog" u kontrol edin
Aşağıdaki makaleyi alıntıladım:
"Temel olarak Git'in içinde, verilerin depolandığı her eylemi gerçekleştirirsiniz, bu verileri reflog'un içinde bulabilirsiniz. Git, verilerinizi kaybetmemek için gerçekten çok çaba sarf eder, bu nedenle sahip olduğunu düşündüğünüz bir nedenden dolayı, kazabilirsiniz git reflog kullanarak "
Ayrıntılara bakınız:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html
git reflogburada, ben geri almayı arıyordum bu cevabı bulundu git checkout HEAD .- Ben yazmak için geliyordu git reset HEAD .- Sadece bir '--soft BAŞ ~ 1 reset Git' yapmış ve bilmiyordu Hakkında git reflogyaptığım işi geri alabildim :)