Подтвердить что ты не робот

Как заставить git проверить мастер-ветку и удалить каретки после того, как я нормализовал файлы, используя атрибут "текст"?

Хорошо, поэтому я добавил файл .gitattributes с такими строками

*.css text
*.js text
etc...

Затем я выполнил инструкции http://git-scm.com/docs/gitattributes#_checking-out_and_checking-in

$ rm .git/index     # Remove the index to force Git to
$ git reset         # re-scan the working directory
$ git status        # Show files that will be normalized
$ git add -u
$ git add .gitattributes
$ git commit -m "Introduce end-of-line normalization"

Но теперь у моей рабочей копии все еще есть каретки! У меня есть необработанные файлы, которые я хотел бы сохранить. Как я могу git снова проверить основную ветвь с нормализованными файлами?

Я знаю, что файлы нормализованы в репозитории, потому что когда я клонирую репо, у меня есть все файлы без возврата каретки.

4b9b3361

Ответ 1

Ахаха! Оформить предыдущую фиксацию, затем проверить мастер.

git checkout HEAD^
git checkout -f master

Ответ 2

Как указывали другие, можно просто удалить все файлы в репо, а затем проверить их. Я предпочитаю этот метод, и это можно сделать с помощью кода ниже

git ls-files -z | xargs -0 rm
git checkout -- .

или одна строка

git ls-files -z | xargs -0 rm ; git checkout -- .

Я использую его все время и еще не нашел ни одной стороны!

Для некоторого дополнительного объяснения, -z добавляет нулевой символ в конец каждого входа, выводимого ls-files, а -0 сообщает xargs разграничить вывод, который он получает этими нулевыми символами.