2016-03-29 14 views
0

В моем рабочем процессе я хочу внести некоторые изменения в файл и сохранить их на своей локальной машине. Для этой цели я написал крючок pre-commit для сброса этих файлов до фиксации.git default commit message include files reset in pre-commit hook

Проблема заключается в том, что сообщение по умолчанию:

# Changes to be committed: 
# FileToBeCommited1 
# FileToBeCommited1 
# FileAlreadyResetByPre-comitHook 

содержит список файлов, которые будут совершенными. По какой-то причине он всегда содержит имена файлов, которые я уже сбросил в своих крючках. Это не большая проблема, но я бы хотел, чтобы она была разрешена, если это возможно. Также я не хочу писать крючок prepare-commit-msg, чтобы написать полное сообщение.

ответ

0

Другой подход будет ignore local changes для этих файлов с помощью git update-index:

git update-index --skip-worktree -- file1 
git update-index --skip-worktree -- file2 
git update-index --skip-worktree -- file3 

Таким образом, нет необходимости в крюк перезапуска тех.
И сообщение фиксации остается чистым.

+0

спасибо, но я не ищу альтернативы, потому что этот метод имеет свои собственные сторонние стороны, такие как rebase или merge, перезаписывается молча. В методе предварительного крючка я должен сознательно ставить и повторно применять ... Мне нравится этот подход лучше – Suryavanshi

+0

@ Сурьяванши, к моему известному, те пропущенные файлы * не * перезаписываются молча (как в http://stackoverflow.com/q/27027732/6309) – VonC

+0

В моем личном опыте они действительно перезаписывались во время 'git pull --rebase' – Suryavanshi