Может ли Git «прикреплять» локальные файлы к веткам? - PullRequest
3 голосов
/ 08 сентября 2011

Я бы хотел, чтобы локальные (никогда не отслеживаемые, никогда не зафиксированные) файлы "прилипали" к определенным веткам git.

Например, я хотел бы иметь возможность сделать что-то вроде:

$ git checkout version1.0
$ make
$ ./myProject # 1.0 binary
$ git stick-to-current-branch myProject
$
$ git checkout version2.0
$ make
$ ./myProject # 2.0 binary
$ git stick-to-current-branch myProject
$ 
$ git checkout version1.0
$ ./myProject # 1.0 binary from above

Я составил команду "stick-to-current-branch", но есть ли что-то, что делает это по-настоящему? Я никогда не хочу фиксировать эти файлы; они зависят от отрасли, но не должны отслеживаться.

Ответы [ 2 ]

3 голосов
/ 08 сентября 2011

Нет, нет возможности «залипать» файл, который не отслеживается git, в извлеченный рабочий каталог разных веток. Однако вы можете «сгенерировать» файл во время извлечения (например, используя хук post-checkout - запустите ваш make в хуке после проверки, чтобы сгенерировать двоичный файл myProject для ветви / версии)

1 голос
/ 08 сентября 2011

(примечание: не для двоичных файлов)
Если содержимое файла myProject легко идентифицируется, вы можете использовать драйвер фильтра , чтобы сгенерировать правильное содержимое для этого файла на основетекущая ветвь.

enter image description here

При каждой проверке вы будете использовать сценарий smudge для генерации личного файла (как в случае «без версий») «myProject» на основефайл шаблона 'myProject.tpl' со всеми правильными значениями для всех различных ветвей.

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