Я использую git gui для выбора строк для подготовки к фиксации. Обычно это работает как шарм. Мне известно о возможности сделать то же самое в командной строке.
Если файл изначально не имеет новой строки в конце файла, git gui распознает это и добавляет предупреждающее сообщение в редактор, как я проиллюстрировал на снимке экрана.
Проблема
Проблема, возникающая из-за отсутствия разрыва строки, заключается в том, что человек больше не может обрабатывать и фиксировать отдельные строки. Когда я щелкаю правой кнопкой мыши, чтобы выбрать конкретную строку, и выбираю Stage line for commit из контекстного меню, появляется сообщение об ошибке.
ошибка: фатальный: поврежден parch в строке 11.
Проблема не является специфической для операционной системы и может быть воспроизведена в Windows, MacOSX и Linux. Я знаю, что могу избежать проблемы, если добавлю новую строку в файл и зафиксирую эту версию, прежде чем продолжу выбирать отдельные строки.
Шаги по воспроизведению проблемы
- Инициализировать новый репозиторий.
- Создайте файл с тремя строками содержимого, каждая со словом «Hallo». Не ставьте новую строку в конце файла.
- Добавьте и зафиксируйте файл.
- Отредактируйте тот же файл, поместив слова между тремя строками.
- Откройте git gui и попробуйте внести изменения построчно.
Запрос
Интересно, есть ли какая-то конфигурация для Git, которая позволяет мне обойти проблему. Некоторый автоматизм, такой как крючок, который добавляет желаемую новую строку, тоже подойдет.
Сообщение об ошибке
Я отправил отчет об ошибке в список рассылки Git. Вы можете следить за обсуждением и участвовать в нем здесь.