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


хорошо, поэтому я добавил файл .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 master branch с нормализованными файлами?

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

2 74

2 ответа:

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

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 чтобы разграничить вывод, который он получал по этим нулевым символам.