Для университетского проекта мы используем репозиторий git, который был создан кафедрой, читающей лекцию.Один раз в день их сервер извлекает последнюю версию нашего проекта и проводит секретные оценочные тесты.Поэтому мы должны гарантировать, что файлы в нашем репо могут быть скомпилированы сервером.
Поскольку мы использовали flex для генерации кода для одной из задач, которые нам пришлось выполнить, мы должны гарантировать, что файл был сгенерированпо правильной flex-версии.(В противном случае сервер не может скомпилировать сгенерированный файл.)
Но моя система не поддерживает flex-версию своего сервера.Поэтому мне нужно создать другую версию файла, чтобы скомпилировать все в моей системе.Когда я закончу с кодированием, моя обычная процедура на данный момент такова:
git add --all
git reset generated-file1.c
git reset generated-file2.c
... (commit and push)
Так как это действует мне на нервы, я уже создал собственную команду, которая делает это для меня.Однако я хотел спросить, есть ли что-то похожее на .gitignore
, чтобы «заблокировать» определенную версию (которая будет скомпилирована на сервере) наших сгенерированных файлов.Поэтому любому в нашей команде нужно будет использовать git add -all
для добавления всего, кроме сгенерированных файлов.
Редактировать: Благодаря предложению phd здесь Я подошел немного ближе к тому, что хочу.Чего мне не хватает, так это части:
... кому-то из нашей команды нужно будет использовать git add -all
...
Используя git update-index --skip-worktree generated-file*.c
, я исправлю это только для моей системы.То, что я искал, - это одноразовое изменение в нашем репо, которое затрагивает все системы.(У других участников тоже есть такая же проблема.)
Я знаю, что они могут скопировать и вставить то же самое в свой терминал, но я хотел знать, есть ли более элегантный способ сделать это (похожев .gitignore
), где я могу перечислить файлы, и они будут игнорироваться в каждой системе.
Приветствия,
Pascal