Каждый разработчик в моей команде имеет свою локальную конфигурацию. Эта информация о конфигурации хранится в файле с именем, devtargets.rb
который используется в наших задачах сборки rake. Однако я не хочу, чтобы разработчики блокировали файл devtargets друг друга.
Моей первой мыслью было поместить этот файл в .gitignore
список, чтобы он не использовался в git.
Тогда я начал задаваться вопросом: можно ли зафиксировать файл, но игнорировать изменения в файле? Таким образом, я фиксирую версию файла по умолчанию, а затем, когда разработчик изменяет ее на своем локальном компьютере, git игнорирует эти изменения и не отображается в списке измененных файлов, когда вы выполняете состояние git или фиксируете git ,
Это возможно? Это, безусловно, было бы хорошей особенностью ...
Ответы:
Конечно, я делаю это время от времени, используя
Чтобы отменить и снова начать отслеживание (если вы забыли, какие файлы не были отслежены, посмотрите этот вопрос ):
Соответствующая документация :
Изящный сбой в этом случае означает, что если есть какие-либо изменения перед этим файлом (допустимые изменения и т. Д.), Когда вы выполняете извлечение, он скажет:
и откажется слиться.
На этом этапе вы можете преодолеть это путем отмены локальных изменений, вот один из способов:
затем снова потяните и повторно измените свой локальный файл, или можете установить,
–no-assume-unchanged
и вы можете сделать обычное копирование и слияние и т. д. в этот момент.источник
git update-index --assume-unchanged
для. public-inbox.org/git/…Предпочтительный способ сделать это - использовать
git update-index --skip-worktree <file>
, как описано в этом ответе :Чтобы отменить это, используйте
git update-index --no-skip-worktree <file>
Начиная с git версии 2.25.1, это больше не рекомендуемый способ, цитируя:
источник
git update-index --skip-worktree
для этой цели.Похоже, что обычной практикой является создание
devtargets.default.rb
и принятие его, а затем указание каждому пользователю скопировать этот файлdevtargets.rb
(который находится в списке .gitignore). Например, CakePHP делает то же самое для своего файла конфигурации базы данных, который естественным образом изменяется от компьютера к компьютеру.источник
--assume-unchanged
опцию для всех, кто клонирует репозиторий.devtargets.default.rb
еслиdevtargets.rb
она не существует.Для пользователей IntelliJ IDEA: если вы хотите игнорировать изменения для файла (или файлов), вы можете переместить его в другой файл
Change Set
.Local Changes
(Cmd + 9
)F6
переместить их в другойChange Set
источник