web-gelistirme-sc.com

"Ölümcül: gevşek nesne" nasıl kaldırılır?

Klonlanmış depolarımdan biri, bunu bir git fsck'ten alıyor

ölümcül: gevşek nesne 40bda4e3b79c3d7bf598df31d9e68470f97a3f79 (.git/objects/40/bda4e3b79c3d7bf598df31d9e68470f97a3f79 içinde saklanır)

FSB'in temiz olduğu bir kopyasını daha aldım.

Ölümcül dizini içeren dizini/alt dizinleri kopyalamayı ve yeniden kopyalamayı denedim. Problem devam ediyor.

Herhangi bir dosyayı gerçekten umursamıyorum, sadece deponun temiz bir şekilde çalışmasını istiyorum. Ben ne yaparım?

Not: Uzak havuz github'da barındırılmaktadır.

19
fishtoprecords

Kolay cevap: Eski depoyu uzaklaştırın ve boşaltın. Eski depoda saklamak istediğiniz şeyler varsa, bunları almanın yolları vardır, ancak önce iyi bir repo elde edin.

25
Seth Robertson

İlk olarak, dosya sisteminde hata olup olmadığını kontrol edebilirsiniz: fsck -y

Ardından git deposunu kontrol edin: git fsck

4
Slam

Fikir şudur:

  1. ilk önce şu anki projenizin altında .git adresinde bulunan mevcut git kayıtlarınızı kaldırın ("proje A" ile gösterelim).
  2. Mevcut projenizin kopyasını alın, kopyayı "proje B" olarak adlandırırız.
  3. Şimdi A ve git projesine cd klonlayın ve son işleme geri döndürün.
  4. Tüm dosyaları B projesinden kopyalayın ve A projesindeki dosyaları değiştirin.
  5. Şimdi A projesine cd ve A projesinin durumunu görmek için git status kullanın. Daha önce hiç yolsuzluk olmamış gibi olmalı.

Kısacası, mevcut çalışma alanınızı ayırmak için bir kopya alın ve dosyaları değiştirerek yeni bir klonla birleştirin ve ardından değişikliklerinizi normal şekilde yapın.

İşte eylemde:

  1. Öncelikle bir yolsuzluğum olduğunu görüyorum (bunun nedeni, sanal makinemi dün tamamen kapatılmaya zorladığım için: P):

    ✘ domicor @ ubuntu  ~/dotfiles   master ●  git durumu Hatası: nesne dosyası .git/objects/cd/593f6db1d5050406e15b9c80d215fd48db39f4 boş Hata: nesne dosyası. (.git/nesne/cD/593f6db1d5050406e15b9c80d215fd48db39f4 saklanan) cisim cd593f6db1d5050406e15b9c80d215fd48db39f4 bozuk : 593f6db1d5050406e15b9c80d215fd48db39f4 [. .____] ölümcül boş corrupted

  2. dotfiles klasörümün bir kopyasını alın ve şimdi .git klasörünü kaldırın.

    $ cd ~/dotfiles $ rm -rf .git

     dotfiles

  3. Ardından git deposunu yeniden oluşturun.

    $ git init

  4. Uzaktan kumanda ekle.

    $ git remote add Kökeni [email protected]: domicor/dotfiles.git

  5. Uzaktan kumandadan al.

    $ git getir

    İşte yukarıdaki komutların bir ekran görüntüsü:  rm-clone-fetch

  6. Şimdi HEAD'i sıfırlayın.

    $ git reset - Kaynak/master

    Bu atış:  reset

    Uzaktan kumandadan alındıktan hemen sonra, deponun durumunu kontrol etmek için bir git status komutu verdim. Tüm dosyaların izlenmediğini görebilirsiniz. Prompt komut satırının ilk kısmı, git init komutumdan git reset komutuna kadar turuncu renktedir; bu, repo'umu başlattığımda, git dosyaları algıladı ve sıfırlama işleminden sonra tüm dosyaların HEAD durumuna geri yüklendiğini belirtir bu nedenle yeşil istemi.

  7. Yukarı akış dalını ayarlayın:

    $ git branch --set-upstream-to = Kaynak/ana yönetici

  8. Şimdi dosyalarınızı dotfiles klasöründeki dosyaları değiştirmek için manuel olarak veya komut satırından yedekleme klasörüne (benim için dotfiles (copy)) kopyalayın. Durumu kontrol edin ve ekran görüntüsümdeki gibi değişiklikler olmalı:

     final

  9. Artık değişikliklerin doğru uygulanıp uygulanmadığını kontrol etmek için git diff your-filename yapabilirsiniz ve bundan sonra dosya ekleyebilir ve taahhüt edebilirsiniz. \O/

Bunu anlamak için git VCS sadece değişikliklerinizi kaydeder. VCS bozulduğunda, dosyalarınız hala güvendedir. Hala bıraktıklarında hala oradalar. Böylece, dosyalarınızı yedeklersiniz ve git kayıtlarını başka bir yerden geri yüklersiniz ve git geri yükleme kopyasını mevcut dosya durumunuzla karşılaştırabilir ve bozulmadan önce olduğu gibi nelerin değiştiği hakkında fikir sahibi olabilir. Ve şerefe\o /

3
Hustlion

git checkout 'ı diğer şubeye yapın, değiştirilen dosyaların listesini alacaksınız, sadece onları işleyin ve şubeye itin. Eğer bunu yaparsanız, bir dahaki sefere git status' nin çalışması gerektiğinde sorun çözülecek.

0
Bhargav Yadati

Bu sorunla karşılaştım ve bu basit numara hile çözüldü.

Aşama 1

Bu sorunla "my-new-feature" dalı olan "my-project" adlı bir klasörde bulunduğunuzu varsayalım, repoyu "my-project-dummy" adlı yeni bir klasöre klonlayın ve "my-new-feature" için ödeme yapın

Adım 2

"My-project" klasöründeki ".git" klasörünü silin ve "my-project-dummy" klasöründen ".git" klasörünü "my-project" e kopyalayın

Tadaaa, şimdi gitmekte iyisin.

0
Rameez Rami