Начиная с Git 2.16 (1 квартал 2018 г.), существует другой способ (кроме удаления содержимого индекса) с «git add --renormalize .
», который является новым и более безопасным способом зафиксировать тот факт, что вы исправляете конечный результат. офлайн соглашение
См. commit 9472935 (16 ноября 2017 г.) от Torsten Bögershausen (tboegi
).
(Объединено пользователем Junio C Hamano - gitster
- в commit af6e0fe, 27 ноября. 2017)
add
: ввести "--renormalize
"
Сделайте более безопасным нормализовать окончания строк в репозитории.
Файлы, которые были зафиксированы с помощью CRLF, будут зафиксированы с помощью LF.
Старый способ нормализации репо был таким:
# Make sure that there are not untracked files
$ echo "* text=auto" >.gitattributes
$ git read-tree --empty
$ git add .
$ git commit -m "Introduce end-of-line normalization"
Пользователь должен убедиться, что нет неотслеживаемых файлов, иначе они были бы добавлены и отслеживались с этого момента.
Новый "add --renormalize" не добавляет неотслеживаемые файлы:
$ echo "* text=auto" >.gitattributes
$ git add --renormalize .
$ git commit -m "Introduce end-of-line normalization"
Обратите внимание, что «git add --renormalize <pathspec>
» - это краткая форма для «git add -u --renormalize <pathspec>
».
Примечание. В Git 2.21 (февраль 2019 г.) исправлена ошибка, связанная с этим: «git add --ignore-errors
» не работал так, как рекламировалось, а вместо этого работал как непреднамеренный синоним «git add --renormalize
», который был исправлен.
См. commit 9e5da3d (17 января 2019 г.) на Джефф Кинг (peff
).
(Объединено Junio C Hamano - gitster
- в фиксации 1c41824, 05 февраля 2019)
добавить: использовать отдельный флаг ADD_CACHE_RENORMALIZE
Зафиксируйте 9472935 (add
: введите "--renormalize
", 2017-11-16, Git 2.16) научили git add
передавать HASH_RENORMALIZE
в add_to_index()
, который затем передает флаг index_path()
.
Однако флаги, взятые add_to_index()
, и флаги, взятые index_path()
, являются разными пространствами имен.
Мы не можем принимать HASH_*
флаги в add_to_index()
, потому что они перекрываются с ADD_CACHE_*
флагами, которые мы уже использовали (в этом случае HASH_RENORMALIZE
конфликтует с ADD_CACHE_IGNORE_ERRORS
).
Мы можем решить эту проблему, добавив новый флаг ADD_CACHE_RENORMALIZE
и используя его для установки HASH_RENORMALIZE
в пределах add_to_index()
.
Чтобы прояснить, что эти два флага происходят из разных наборов, давайте также изменим имя «newflags
» в функции на «hash_flags
».
Также: см. commit e2c2a37 (7 февраля 2019 г.) от Джефф Кинг (peff
).
(Объединено Junio C Hamano - gitster
- в совершить 9293bf6, 7 февраля 2019 г.)
add_to_index()
: преобразовать забытый HASH_RENORMALIZE
чек
Коммит 9e5da3d (add
: использовать отдельный флаг ADD_CACHE_RENORMALIZE
, 2019-01-17) отключен с использованием HASH_RENORMALIZE
в нашем поле флагов для нового флага ADD_CACHE_RENORMALIZE
.
Однако он забыл преобразовать одну из проверок для HASH_RENORMALIZE
в новый флаг, что полностью нарушило "git add --renormalize
".
person
VonC
schedule
30.11.2017
git add --renormalize .
: см. мой ответ ниже - person VonC   schedule 30.11.2017