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

Как сделать git режим принятия изменений без принятия всех изменений текста?

У меня есть противоположная проблема из "Как мне изменить Git игнорировать режим файла (chmod)?" У меня есть файл, на который я изменил исполняемое разрешение, но есть также некоторые изменения текста, и я хочу совершить первое, но не последнее. Это возможно с помощью git?

(На самом деле, я сделал некоторые изменения текста, которые я хочу совершить вместе с изменение разрешения исполняемого файла и другие, которые я не хочу комментировать)

Обновление: Неповторимое изменение текста в файле, а затем выполнение git add -p снова и включение некоторых текстовых изменений, которым удалось получить изменение режима в постановку. (Моя версия Git - 1.5.4.3)

4b9b3361

Ответ 1

git add -i позволит вам выборочно добавлять некоторые ханки из файла в индекс. Я не знаю, чувствителен ли он к разрешениям, но если вы должны добавить кусок после операции chmod, он может оказаться в индексе правильно даже без явного обновления разрешения.

Ответ 2

Вы должны уметь:

git update-index --chmod=(+|-)x <file>

чтобы отрегулировать исполняемый бит, сохраненный в индексе.

Затем вы можете зафиксировать это отдельно от любых изменений в содержимом файлов.

Ответ 3

Ответ Шарля добавлял в индекс как для режима файла, так и для контента. Я работал вокруг этого так.

git update-index --skip-worktree --chmod=+x <file>
git update-index --no-skip-worktree <file>

Пример

В качестве альтернативы вы можете сделать

git update-index --chmod=+x <file>
git config interactive.singlekey 1
echo na | git reset -p