Как заставить git игнорировать все дальнейшие изменения в одном файле, не удаляя его из репозитория - PullRequest
34 голосов
/ 06 ноября 2010

Я разбудил проект на github и начал возиться с ним на моей собственной машине, я хочу зафиксировать изменения, которые я сделал, обратно на мой форк на github, но без фиксации изменений, которые я внес в файл .cfg, так как он содержит такие вещи, как пароль БД и т. д.

1 Ответ

72 голосов
/ 06 ноября 2010

Используйте это:

git update-index --skip-worktree path/file.cfg

И восстановить:

git update-index --no-skip-worktree path/file.cfg

Наконец, если вы хотите перечислить файлы, отмеченные skip-worktree:

git ls-files -v | grep ^S | awk '{print $2}'

Чтобы упростить, вы можете создать для этого псевдоним в $HOME/.gitconfig:

[alias]
    ls-ignored-changes = !git ls-files -v | grep ^S | awk '{print $2}'

Тогда вы можете просто набрать git ls-ignored-changes. Он даже работает с автозаполнением, если у вас есть git-completion на месте (для bash, tcsh, zsh).

...