Как настроить git, чтобы игнорировать изменения файла, но при этом восстанавливать его? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть файл .h, который я создаю с помощью сценария для назначения макросов git ha sh и имени ветки. Я хочу сохранить шаблон этого файла с git, назначив макрос сообщению об ошибке вместо хэша / ветки. Он не может содержать ha sh и ветку, потому что, если вы обновите файл с помощью ha sh, он снова изменит ha sh.

Я бы хотел, чтобы в шаблоне был такой же name, поэтому проект будет построен и отобразит сообщение об ошибке, если сценарий не будет запущен. Я хотел бы сохранить этот шаблон в начальной фиксации и игнорировать последующие изменения, но все же восстановить файл при проверке другой ветки / фиксации, чтобы избежать неправильного ha sh и ветки, встроенной в программу.

Я изучаю

git update-index --skip-worktree <file.h>

и

git update-index --assume-unchanged <file.h>

, но я думаю, что у них есть пара fl aws для моего приложения

--skip-worktree не ' t позвольте мне проверить другую ветку, сказав, что version.h будет перезаписан.

--assume-unchanged не восстанавливает файл при проверке или даже git восстановлении.

Любые идеи ?

Заранее спасибо

1 Ответ

0 голосов
/ 18 июня 2020

Вы должны использовать какой-нибудь инструмент сборки для генерации foo.h из foo.h.template, если он отсутствует. foo.h.template - единственный, который вы фиксируете в своем репозитории. Например, Makefile, обработанный make, будет включать цель вроде

foo.h: foo.h.template
        yourScript foo.h.template

someFile: foo.h
        someOtherCommand

. Если вы запустите make someFile, make запустит someOtherCommand, если someFile не существует, или если someFile существует, но старше foo.h. Если foo.h сам по себе не существует или старше его зависимости foo.h.template, тогда он сначала запустит yourScript foo.h.template, чтобы обновить foo.h, затем запустить someOtherCommand, чтобы обновить someFile.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...