Есть ли способ игнорировать определенный файл для всех пользователей, кроме меня? - PullRequest
0 голосов
/ 08 февраля 2020

Есть файл, который я хотел бы сохранить на удаленном репозитории git, но я хотел бы быть только тем, который может вносить изменения в него. Другие пользователи могут обновлять его локально, но при фиксации этот файл будет игнорироваться для них. В идеале, было бы как можно меньше шагов (ни один не был бы крут) для всех других пользователей, чтобы следовать этому поведению. Любые идеи?

Я думал о том, чтобы, возможно, добавить этот файл в глобальный gitignore и, возможно, сделать файл исключением в локальном gitignore или в конфигурации exclude (не уверен, что это будет работать так, как я себе это представляю) бы).

Ответы [ 3 ]

0 голосов
/ 08 февраля 2020

Один из подходов заключается в добавлении затронутого файла в зарегистрированный файл .gitignore, а затем при преднамеренном редактировании вы должны использовать git add -f, чтобы переопределить .gitignore и перезаписать файл. Это то, что вы или кто-либо другой могли бы сделать, и вам следует избегать случайных или непреднамеренных изменений.

Обратите внимание, что если локальные пользователи перезаписывают файл в хранилище локальными изменениями, это может несколько раздражать слияние или перезапись, когда Вы проверяете изменения. Вы можете указать, как git checkout обрабатывает конфликты рабочего дерева с -f и -m, но если есть альтернативные подходы, использующие отдельные файлы (например, «base.config» против «user.config»), вы можете может рассмотреть это вместо.

0 голосов
/ 08 февраля 2020

Если парни из вашей команды выполнят:

git update-index --skip-worktree yourFile

или

git update-index --assume-unchanged yourFile

git будет рассматривать этот файл как неизменный, даже если есть локальные изменения

0 голосов
/ 08 февраля 2020

Вот ссылка, которая может помочь вашему вопросу.

Мне кажется, я нашел еще одну публикацию переполнения стека, которая может помочь. Процесс создания пользовательского файла c .gitignore, по-видимому, заполняет файл с именем GIT_DIR / info / exclude или вводит git config --global core.excludesfile $HOME/.gitignore в Bash, но в ссылка, которая может вам помочь.

...