2017-01-29 12 views
1

У меня очень расстраивает ошибку при попытке вручную редактировать ломти, используя команду:мерзавец Баш оболочки на Windows «Отредактированный ломоть не применяется»

git add -p 

Я уже просмотрел многие из существующих вопросов на этом сайте, включая this one, и this one.

Я нахожусь в точке, где я пытаюсь вручную отредактировать hunk, не вносит изменений в файл, открытый git для ручного редактирования, и все еще получаю сообщение об ошибке «Ваш отредактированный кусок не применяется».

Я думал, что это может иметь отношение к символам CRLF и LF EOL. Я редактирую в Notepad ++, и я вижу, что все мои строки заканчиваются CRLF. Я наивно пытался изменить все концы строк на LF, но безуспешно.

Я также вижу, что все линии контекста имеют ведущие пространства, так что это тоже не проблема. Кроме того, у меня есть:

git --global core.autocrlf 

установлен на true.

Любая помощь очень ценится.


Edit: Согласно ответу VonC, на мой конкретный случай у меня есть разрешение + содержание диф. Разве это по-прежнему означает, что я не могу сделать:

git add -p 

Если бы это было только разрешение дифф, я понимаю, почему это не было бы необходимости, и интерактивный вариант должен быть отброшен; но в этом случае есть ли способ сделать интерактивный add?

+0

Можете ли вы дать точную последовательность команд и другие действия, которые приводят к этой ошибке? –

+0

После запуска 'git add -p', я просто набираю' e', чтобы вручную отредактировать кусок кода. 'git' затем открывает файл редактирования для редактирования hunk. Я получаю ошибку, даже если я закрою этот файл редактирования без внесения каких-либо изменений. – Atreyu

+0

Измените свой вопрос, чтобы включить эту информацию. Вы также можете добавить шаг, который вы редактируете. Также будет полезно дать более конкретный пример исходного редактирования, а затем показать, как вы редактируете ханк. –

ответ

1

Первый, комплект git --global core.autocrlf до false.
Затем клонировать снова свой репозиторий, и проверить значение core.autocrlf:

cd /path/to/new/clone 
git config core.autocrlf 

(без --global)

Наконец, попробуйте еще раз ваш git add -p (после сообщения ваших изменений в новом рабочем дереве).

Что касается управления рунами, см. Также «Unexpected result in git-diff».


"Отредактированный ломоть не применяется".

diff --git a/<file-a> b/<file-b> > 
index <short-hash-a>..<short-hash-b> 100644 
--- a/<file-a> 
+++ b/<file-b> 
<changes> 

Если бы не было никаких изменений (только в разрешении), добавляя «заплату» в этом случае не имеет смысла: вы просто git add файл (не -p)

Но если есть изменения, вопрос, о котором упомянул «git add --interactive “Your edited hunk does not apply”», остается ссылкой.

+0

Спасибо за ваш ответ! Я попробовал то, что вы сказали. Локальное значение для 'core.autocrlf' возвращается как' false' в моем новом клонированном репо, но 'git add -p' в режиме ручного редактирования по-прежнему возвращает ту же ошибку (опять же без внесенных изменений в файл редактирования). – Atreyu

+0

@Atreyu Каков результат 'git diff - afile'? (с 'afile' тот, который вы пытаетесь добавить -p') – VonC

+0

Я получаю ' diff --git a/ b/ ' ' index .. 100644' '--- а/' ' +++ б/' ' ' – Atreyu

 Смежные вопросы

  • Нет связанных вопросов^_^