Передача в git при создании

#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. Спасибо, Марк, это для школьного проекта, и я не понимаю, почему я отслеживаю файлы сборки, если я отслеживаю код, но есть причина для безумия.