Как сделать git режим принятия изменений без принятия всех изменений текста?
У меня есть противоположная проблема из
"Как мне изменить Git игнорировать режим файла (chmod)?"
У меня есть файл, на который я изменил исполняемое разрешение, но есть также
некоторые изменения текста, и я хочу совершить первое, но не последнее. Это
возможно с помощью git?
(На самом деле, я сделал некоторые изменения текста, которые я хочу совершить вместе с
изменение разрешения исполняемого файла и другие, которые я не хочу комментировать)
Обновление: Неповторимое изменение текста в файле, а затем выполнение git add -p
снова и включение некоторых текстовых изменений, которым удалось получить изменение режима
в постановку. (Моя версия Git - 1.5.4.3)
Ответы
Ответ 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