W moim repozytorium, które ma mieszane zakończenia linii. Używam Mac OS X, i git 1.8.3.1Dlaczego poniższe polecenie jest niespójne w moim repozytorium?
Chciałbym renormalizować to repozytorium tak, aby każdy plik miał zakończenia linii, które zgadzają się z plikiem .gitattributes.
W tym celu mam wyrejestrowany ostatnią zmianę:
git checkout origin/develop
git reset --hard
git rm -rf .
git rm --cached -rf .
rm .git/index
git checkout HEAD .gitattributes
git reset --hard
git status
Teraz git rm --cached -rf .
spowoduje błąd, ale ja będąc bardzo paranoikiem z powyższego polecenia. (Na moim komputerze te polecenia były w jednym wierszu, ignorując kody wyjścia)
Powtarzam polecenie wiele razy. (Tj. UP; ENTER; UP; ENTER; UP; ENTER; ...)
W większości przypadków mam czyste konto, które nie jest tym, czego się spodziewam.
Jednak, mniej więcej raz na dziesięć razy, okazuje się, że otrzymuję trzy pliki (które wydają się być poprawnie renormalizowane). W pozostałym czasie nie ma renormalizacji.
Wyjście z takiego pliku, który pobiera renormalized (czyli jest „zmodyfikowany”) jest: atrybuty
$ file source/RemoveDuplications.cs
source/RemoveDuplications.cs: UTF-8 Unicode (with BOM) C++ program text, with CRLF line terminators
My git plik ma sporą liczbę wpisów, ale istotne jeden jest tutaj:
* text=auto
*.cs text eol=crlf
Co może być nie tak?
Należy zauważyć, że pliki, które pojawiają się jako zmodyfikowane, są tymi samymi, które pojawiają się w wyniku modyfikacji: "znajdź. -iname '* .cs' -exec unix2dos '{}' \; ' – Arafangion
Oczywiście, normalizacja gita nie zawsze ma miejsce, i jestem zdezorientowany. – Arafangion
Ten błąd nadal występuje w wersji 1.8.4 git z homebrew. – Arafangion