Ответ 1
Ахаха! Оформить предыдущую фиксацию, затем проверить мастер.
git checkout HEAD^
git checkout -f master
Хорошо, поэтому я добавил файл .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 снова проверить основную ветвь с нормализованными файлами?
Я знаю, что файлы нормализованы в репозитории, потому что когда я клонирую репо, у меня есть все файлы без возврата каретки.
Ахаха! Оформить предыдущую фиксацию, затем проверить мастер.
git checkout HEAD^
git checkout -f master
Как указывали другие, можно просто удалить все файлы в репо, а затем проверить их. Я предпочитаю этот метод, и это можно сделать с помощью кода ниже
git ls-files -z | xargs -0 rm
git checkout -- .
или одна строка
git ls-files -z | xargs -0 rm ; git checkout -- .
Я использую его все время и еще не нашел ни одной стороны!
Для некоторого дополнительного объяснения, -z
добавляет нулевой символ в конец каждого входа, выводимого ls-files
, а -0
сообщает xargs
разграничить вывод, который он получает этими нулевыми символами.