2012-12-31 10 views
7

Bir şubemi yerel repo'mdan bir başparmak sürücüye geçirdiğimde bir hatayı çözme konusunda yardıma ihtiyacım var. Sorunun farklı sürücüler arasında ileri geri geçiş yapmasının neden olduğuna inanıyorum. Özellikle birini kaybettim ve yerine kullanmaya başladım. Sonra orijinali bulduğumda ona geri döndüm. Şimdi benim bazı refs/kafaları berbat görünüyor. Ben bir şube itmek çalıştığınızda Örneğin, ben şu çıktıyı almak:"Kilitlenemedi" hatası

$ git push origin android-lite 
Counting objects: 111, done. 
Compressing objects: 100% (98/98), done. 
Writing objects: 100% (109/109), 29.63 KiB, done. 
Total 109 (delta 40), reused 0 (delta 0) 
error: unable to resolve reference refs/heads/android-lite: No such file or directory 
remote: error: failed to lock refs/heads/android-lite 
To /media/2AC0-E4E2/devel/src/java/bbct/ 
! [remote rejected] android-lite -> android-lite (failed to lock) 
error: failed to push some refs to '/media/2AC0-E4E2/devel/src/java/bbct/' 
$ 

Eğer doğru anlamak, bu hakemler/kafa/android-lite kökenli bulunmadığını söylüyor. Ancak, git neden git yeni bir şube oluşturmuyor diye kafam karıştı. Benim yerel repo benim android-lite dalı zaten kökeni var olduğunu gösteren bir şey var mı? (git gc ile this question olduğu gibi, git prune, git fsck, ...)

+4

Repo'unuzu 'git gc' ve' uzak uzaktan ayarlama 'ile temizleyebilirsiniz. – madhead

cevap

2

uzak repo ayıklama çok karmaşık ise), yapmaya devam edebilirsiniz:

  • git bundle mevcut repo, bu sana sadece verecek bir dosya,
  • kopyalamanız
  • git clone
  • yeni yolu mevcut uzaktan adresini ayarlamak o paket dosyasından uzak sürücüde bir dosya

Bu "How to synchronize two git repositories" gibi bir bit ve bu görev için bir paket kullanmak, herhangi bir dosya hata kopyasının olmadığından emin olmaktır.

+0

Öneriler için teşekkürler. Sorumlulukta bir ayrıntıyı vurgulamak için: uzaktan repo, bilgisayarıma takılı bir başparmak disk üzerindedir. Kolayca doğrudan uzaktaki repo'ya cd yapabilirim ve oradan manipüle edebilirim. Yani uzaktan kumandayı doğrudan manipüle eden basit bir çözüm varsa, bunun için hepim var. –

+0

@ Code-Guru Hata ayıklamaya çalışabileceğiniz komutu açıklayan soruyla bağlantılıyım. Benim önerim ile ilgili olarak, temiz bir repo başlatmak için hala bir demet kullanacağım. Veya yerel repo'unuzu doğrudan söz konusu sabit disk sürücüsüne kopyalayabilirsiniz. – VonC