SORU
6 Ocak 2010, ÇARŞAMBA


git durumunu gösterir değişiklikleri, git checkout -- <dosya>'t onları kaldırmak değil

Benim çalışma kopyası için tüm değişiklikleri kaldırmak istiyorum.< / ^ br . Çalışan durumu 'gösterir değiştirilmiş dosyaları. gıt< / ^ br . Yaptığım hiçbir şey bu değişiklikleri kaldırmak gibi görünüyor.< / ^ br . E. g.:< / ^ br .

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
#       modified:   Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
#       modified:   Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
#       modified:   Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git checkout -- Rhino.Etl.Core/Enumerables/CachingEnumerable.cs

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
#       modified:   Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
#       modified:   Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
#       modified:   Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git checkout `git ls-files -m`

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
#       modified:   Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
#       modified:   Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
#       modified:   Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git reset --hard HEAD
HEAD is now at 6c857e7 boo libraries updated to 2.0.9.2 and rhino.dsl.dll updated.

rbellamy@PROMETHEUS /d/Development/rhino-etl (master)
$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   Rhino.Etl.Core/Enumerables/CachingEnumerable.cs
#       modified:   Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs
#       modified:   Rhino.Etl.Tests/Rhino.Etl.Tests.csproj
#       modified:   Rhino.Etl.Tests/SingleThreadedPipelineExecuterTest.cs
#
no changes added to commit (use "git add" and/or "git commit -a")

CEVAP
6 Ocak 2010, ÇARŞAMBA


Bu davranış neden olabilir birden çok sorun vardır:

Çizgi normalleştirme son

Çok bu tür sorunları yaşadım. Git aşağı otomatik olarak crlf lf dönüştürmek geliyor. Bu, genellikle tek bir dosya içinde karışık Satır sonları neden olur. Dosya dizinde normalize alır, ama gıt sonra tekrar çalışma ağacında dosya karşı diff için denormalizes, sonuç farklı.

Ama eğer bunu düzeltmek istiyorsan eğer, devre dışı bırakmanız gerekirçekirdek.autocrlftüm Satır sonları eğer için , ve yeniden etkinleştirme değiştirin. Ya da tamamen yaparak devre dışı bırakabilirsiniz

git config --global core.autocrlf false

Yerineçekirdek.autocrlfayrıca .gitattribute dosyalarını kullanarak düşünebilirsiniz. Bu şekilde, herkes repo kullanarak aynı normalleştirme kuralları kullandığından emin, karışık Satır sonları depo girmesini engelleyen yapabilirsiniz.

Ayrıca ayarlama düşününçekirdek.safecrlfEğer isterseniz uyarmaya dönüşümsüz normalleştirme yapılması zaman sizi uyarmak için git.

Git manpages demek bu

CRLF dönüştürme şansı ayılar verileri bozma. =gerçek olacak autocrlf CRLF LF taahhüt sırasında ve dönüştürmek Ödeme sırasında CRLF LF. Bir dosya EĞER o ve CRLF karışımı içerir bu yeniden tamamlanamaz önce git ile. Metin için bu dosyaları doğru olanı yapmak: çizgi düzeltir sonlar sadece çizgi EĞER biz böyle depodaki sonlar. Ama ikili yanlışlıkla dosyaları metin dönüşüm olabilir gizli bozuk veri.

Büyük / küçük harf duyarlı dosya sistemleri

Farklı bir kasa ile aynı dosya adı depodaki zaman büyük / küçük harf duyarlı dosya sistemi,, git ama sadece biter dosya sistemi üzerinde kontrol etmeye çalışır. Git ikinci karşılaştırmak için çalıştığında, yanlış dosyaya karşılaştırın.

Çözümü olmayan büyük / küçük harf duyarlı bir dosya sistemine geçiş olacağını da, ancak bu çoğu zaman mümkün veya yeniden adlandırma değildir ve başka bir dosya sisteminde dosyaların bir yapılıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010