Есть много способов, в которых это не имеет смысла, как вы признаете в своем вопросе. Однако, предполагая, что вы хотите, чтобы ваш репозиторий 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, что означает, что ее зависимости не являются реальными целями.)