2012-07-16 15 views
8

Dizüstü bilgisayarımda kişisel küçük boy depom var. Değişiklikleri yeni bitirdim ve taahhüt edilecek hiçbir şeyim olmadığını kontrol ettim - her aşamalı ve değiştirilmiş dosya taahhüt edildi.Neden git deposu başka bir dirke kopyaladıktan sonra dosyaları değiştirdim?

Bundan sonra tüm dosyaları bu repodan başka bir yere kopyaladım! Kayıtsız değişikliklerim var.

Bazı temel git kurallarını kaçırdığımı düşünüyorum. Bana bunu öneren var mı?

+0

Yeni kopyanın bir git deposu olduğunu mu düşünüyorsun? – bluesman

+1

Orijinal repo öğesinin Windows'da bulunduğunu ve kopyada Ubuntu'da yer alması gerekir. Bu büyük bir fark yapar. Bu bilgi verildiğinde, parrhoyts'un cevabının doğru olduğuna inanıyorum. – suvayu

+0

'git diff' size gerçek farklılıkları gösteriyor mu? Yoksa sadece değişikliklerin olduğunu söyleyerek git durumunu görüyor musunuz?Dizinin her dosyayla ilgili bazı meta verileri sakladığından emin olabilirsiniz - kopyanın orijinalinden farklı zaman damgaları vardır, bu nedenle, '' 'bu dosyaların içeriğinin, dizinin içeriği ne olursa olsun, dizinin orada olması gerektiğini düşündüğüyle eşleşmeyebilir dosyaların hala aynı olabilir. – twalberg

cevap

6

Windows'taki dosyalarınızın büyük olasılıkla satır başı satır sonu satır sonu var ve muhtemelen windows kutunuzda core.autocrlf var. Farklı platformlar arasında böyle kopyalamayın. Bunun yerine, linux kutusuna yeni bir git deposu oluşturun ve Windows kutusundan çekin. Depoyu açığa çıkarmak için Windows makinede git bundle veya git daemon'u kullanabilirsiniz. Ya da linux kutusundaki çıplak bir repo ve Windows makineden git push --mirror yapabilirsin, sonra son versiyonun bitmesini istediğiniz yere klonlayabilirsiniz. Veya büyük olasılıkla zaten bir git reset --hard HEAD yapabilir ve linux kutusunda olduğu gibi sabitleyebilirsiniz. Muhtemelen tamamen temiz çalışan bir ağaç sağlamak için .git klasörü dışındaki her şeyi silmeniz gerekir.

1

Klasörler arasındaki izinler değişiyor mu? Git, izinlerin değişikliğini kaydeder.

+1

Peki tam olarak ne demek istediğimi bilmiyorum ama eğer önemliyse Win7 makineden Ubuntu'ya dosya kopyaladım. – Patryk

+0

Git hangi dosya izinlerini izler? [Bu soru] (http://stackoverflow.com/questions/1071241/how-does-git-handle-folder-permission) bunun olmadığını gösterir. Bilgileriniz nereden geliyor? – simont

+0

Ubuntu/linux – leighman

1

Windows'dan Linux'a kopyalama, dosya haklarında bir fark yaratır, bu değişiklikler git tarafından da izlenir.

1

Aynı sorunla karşı karşıyayım. Ancak, ana bilgisayar linux sisteminden bir Sanal Kutu misafir sistemine dosya kopyaladım. Bazı dosya izinleri değiştirilirken bazı linkler silinir, düzeltmek yapıp git config core.filemode false. Aslında değişen dosyaları almak için

git diff | grep -B 2 @@ | grep +++ 

çalıştırmak Yaptıklarımı

9

, o zaman, tüm diğerleri

+0

Benim için çalıştığı Windows dosya sistemlerine erişirseniz otomatik olarak ayarlanabileceğini veya ayarlanamayacağını düşündüğüm yürütülebilir biti izler. Gerçekte değiştirilmiş dosyaları gösterir. Sonra git farkında görünmeyen git durumu ile listelenenleri işaretleyin. –

0

kaybedecek zulası hiçbir şey varsa üzerine dönmek do:

git checkout .

Bu çalışma ağacını önceki işleminize geri döndürecektir

0

Birden çok dalınız varsa ve tüm değişiklikler değiştiyse, bu çözüm işe yarayabilir

Sadece gördüğünüz tüm değişiklikleri mevcut şubeye ekleyin ve işleyin (master). Ardından başka bir şubeye bakın (test edin) Ana kolu yerel olarak silin (-D seçeneği ile). Ana şubeyi

Bitti'den çekin.!

İlgili konular