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

Что может вызвать git для кодирования символов?

Изменить: git не вписывается в кодировку символов. Это все еще здесь, чтобы делиться знаниями и избегать других, совершающих ту же самую ошибку.


Контекст: мое предприятие использует репозиторий svn. Я использую git -svn в качестве клиента для взаимодействия с этим репозиторием. Все текстовые файлы в проекте (и должны быть) закодированы с использованием кодировки по умолчанию Windows (cp -....). Я использую git -extensions, а иногда и командную строку для пилота git.

Что я сделал. За последние 3 дня я работал над новой функцией, и я сделал ряд локальных коммитов. Наконец, я передал все эти коммиты в один, используя интерактивную rebase, затем я использовал git svn dcommit, чтобы выталкивать все в репозиторий svn за один коммит.

Что случилось тогда: коллеж сказал мне, что все акценты были испорчены в файлах, которые я изменил, и в новых файлах после моего фиксации. Я уже совершил текстовые файлы с акцентами в том же репозитории с моей установкой git + svn раньше, и это первый раз, когда я сталкиваюсь с этой проблемой.

Мое расследование. Я исследовал следующие вещи: открыл файлы с помощью блокнота ++ и попробовал самые последние кодировки (включая окна по умолчанию и UTF-8), чтобы просмотреть их: ни один из них не мог правильно отображать акценты, а разные акценты всегда отображаются одной и той же последовательностью странных глифов.

Временное обходное решение: я быстро создал команду revert commit с расширением git и "dcommited".

Вопрос: Мой репозиторий svn для моего предприятия в порядке, но теперь у меня есть две следующие проблемы:

  • Поймите, что произошло с персонажами с акцентами
  • Извлеките мою работу из истории SVN и скопируйте ее надлежащим образом (если возможно, без ручного просмотра всех символов с акцентами)

Может ли кто-нибудь предоставить некоторые подсказки (я довольно новичок в git)?

4b9b3361

Ответ 1

И теперь пусть раскрывает мучительную истину (болезненную для моего эго, а не для git пользователей): Я действительно возился с акцентами, а не git.

Я бы просто удалил вопрос, который ошибочно полагал, что git может испортить акценты, но учитывая количество upvotes, я думаю, что многие люди делают ту же ошибку, что и я, поэтому я выбрал ответить на мой вопрос, чтобы установить правду, и, возможно, помочь людям в одном и том же случае:

  • Git не касается символов, отличных от разрывов строк.
  • Я сломал акценты перед совершением, и я не заметил этого, потому что я не уделял достаточного внимания. Для этого я редактировал некоторые файлы с помощью eclipse. Eclipse не распознает кодировку, и все акценты заменяются чередой байтовой последовательности при сохранении. Это все.

Еще раз спасибо Дмитрию Павленко за предоставленную мне информацию о том, как исследовать эту проблему.

+1 до "git reflog"

Счастливое закрепление акцента; =)