#git #makefile
#git #makefile
Вопрос:
Я пишу программу на C и отслеживаю свой исходный код с помощью git.
Каждый раз, когда я запускаю свой makefile, мне нужно зафиксировать свою сборку. (Да, я знаю, что это не идеальная вещь или «умная» идея, но я должен сделать это для школы.)
Как бы я зафиксировал myprogram в своем репозитории git с комментарием даты из моего make-файла? Должен ли я вместо этого использовать сценарий оболочки?
Вот мой Makefile ниже
BUILDID=$(shell date %Y%m%d-%H:%M:%S)
CFLAGS=-Wall -g
all: myprogram
clean:
rm -f *.o
rm -f myprogram
Ответ №1:
Существует множество способов, с помощью которых это не имеет смысла, как вы признаете в своем вопросе. Однако, предполагая, что вы хотите, чтобы ваш репозиторий git отражал все изменения в вашем рабочем дереве (кроме игнорируемых файлов), вы могли бы сделать следующее:
.PHONY: all commit
BUILDID=$(shell date %Y%m%d-%H:%M:%S)
CFLAGS=-Wall -g
all: myprogram commit
commit:
git add -A .
git commit -m 'Automatic commit of successful build $(BUILDID)'
clean:
rm -f *.o
rm -f myprogram
( .PHONY
Это специфично для GNU make, что означает, что его зависимости не являются реальными целями.)
Комментарии:
1. Спасибо, Марк, это для школьного проекта, и я не понимаю, почему я отслеживаю файлы сборки, если я отслеживаю код, но есть причина для безумия.