Skip to content

Instantly share code, notes, and snippets.

@artem78
Created April 5, 2020 13:05
Show Gist options
  • Save artem78/8414e7b1673f491a4367a64eaea2d374 to your computer and use it in GitHub Desktop.
Save artem78/8414e7b1673f491a4367a64eaea2d374 to your computer and use it in GitHub Desktop.

Получить название текущей ветки: git symbolic-ref --short HEAD

Получить полный хеш последнего коммита: git rev-parse HEAD

Ну а если хочется короткий (7 знаков по умолчанию): git rev-parse --short HEAD

Как получить эту информацию в программе на c++: Смотри make-файл gitinfo.mk, который создаёт заголовочный и обновляет файл с необходимой информацией.

HEADERSDIR=..\inc
TARGETFILENAME=$(HEADERSDIR)\GitInfo.h
COMMIT := $(shell git rev-parse --short HEAD)
BRANCH := $(shell git symbolic-ref --short HEAD)
do_nothing :
@rem do_nothing
MAKMAKE : $(TARGETFILENAME)
BLD : do_nothing
CLEAN :
@echo ...Deleting $(TARGETFILENAME)
del /q /f $(TARGETFILENAME)
LIB : do_nothing
CLEANLIB : do_nothing
RESOURCE : do_nothing
$(TARGETFILENAME) : CLEAN
echo Start making of $(TARGETFILENAME)
echo // Information about current git branch and commit> $(TARGETFILENAME)
echo.>> $(TARGETFILENAME)
echo // *** Do not edit! This file generates automatically and all of your changes will be destroyed. ***>> $(TARGETFILENAME)
echo.>> $(TARGETFILENAME)
echo #ifndef GITINFO_H_>> $(TARGETFILENAME)
echo #define GITINFO_H_>> $(TARGETFILENAME)
echo.>> $(TARGETFILENAME)
echo _LIT(KGITCommit, "$(COMMIT)");>> $(TARGETFILENAME)
echo _LIT(KGITBranch, "$(BRANCH)");>> $(TARGETFILENAME)
echo.>> $(TARGETFILENAME)
echo #endif /* GITINFO_H_ */>> $(TARGETFILENAME)
FREEZE : do_nothing
SAVESPACE : do_nothing
RELEASABLES :
@echo $(ICONTARGETFILENAME)
FINAL : do_nothing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment