Вы можете установить флаг skip-worktree
для ограниченных файлов, например так:
git update-index --skip-worktree path/to/the/file
Это немного отличает эффект от того, что вам нужно, но при условии надлежащего соглашения в команде, оно должно окупиться: skip-worktree
заставляет git игнорировать любые локальные изменения, сделанные в указанном дереве (файлах), поэтому, независимо от того, изменяют это ваши товарищи по команде или нет, git не отслеживает эти изменения. Однако git по-прежнему отслеживает удаленные изменения, поэтому команда git pull
обновит содержимое файлов.
Основным недостатком является то, что этот флаг должен быть установлен локально на всех машинах, где эти локальные изменения файла должны игнорироваться на. Для машин, на которых вы будете иметь возможность получить эти файлы sh, просто не устанавливайте этот флаг или снимайте его с помощью следующей команды:
git update-index --no-skip-worktree path/to/the/file