makefile获取git所有信息
时间: 2023-08-04 18:05:49 浏览: 330
你可以使用以下命令将 Git 信息保存到 Makefile 变量中:
```
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
GIT_COMMIT := $(shell git rev-parse HEAD)
GIT_COMMIT_SHORT := $(shell git rev-parse --short HEAD)
GIT_TAG := $(shell git describe --exact-match --tags HEAD 2> /dev/null || echo "")
GIT_DIRTY := $(shell test -n "`git status --porcelain`" && echo "+CHANGES" || true)
.PHONY: print_git_info
print_git_info:
@echo "Git branch: $(GIT_BRANCH)"
@echo "Git commit: $(GIT_COMMIT)$(GIT_DIRTY)"
@echo "Git tag: $(GIT_TAG)"
```
此代码会调用 Git 命令获取当前分支、最新提交的完整哈希值、最新提交的短哈希值、当前标签和是否存在未提交的更改。 然后,这些信息会被保存到 Makefile 变量中。 最后,该变量可在 Makefile 中使用。
相关问题
makefile获取git信息
可以使用以下命令获取 Git 信息,并将其包含在 Makefile 中:
```
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
GIT_COMMIT := $(shell git rev-parse HEAD)
GIT_COMMIT_SHORT := $(shell git rev-parse --short HEAD)
GIT_TAG := $(shell git describe --tags --abbrev=0)
GIT_UNTRACKED_CHANGES := $(shell git status --porcelain | grep "^??" | wc -l)
.PHONY: git_info
git_info:
@echo "Git branch: $(GIT_BRANCH)"
@echo "Git commit: $(GIT_COMMIT)"
@echo "Git commit short: $(GIT_COMMIT_SHORT)"
@echo "Git tag: $(GIT_TAG)"
@echo "Git untracked changes: $(GIT_UNTRACKED_CHANGES)"
```
这将创建一个名为 `git_info` 的 Makefile 目标,该目标将输出 Git 分支名称、提交哈希值、缩短的提交哈希值、最新的 Git 标记和未跟踪更改的数量。可以通过运行 `make git_info` 来获取 Git 信息。
makefile获取git信息提交时间
可以使用以下命令获取 Git 仓库最近一次提交的时间戳:
```
git log -1 --format=%ct
```
其中,`-1` 表示只获取最近一次提交的信息,`--format=%ct` 表示只获取提交时间的时间戳。
在 Makefile 中,可以使用 `$()` 语法执行命令,并将结果赋值给一个变量,例如:
```
GIT_COMMIT_TIMESTAMP := $(shell git log -1 --format=%ct)
```
然后就可以在 Makefile 中使用 `$(GIT_COMMIT_TIMESTAMP)` 这个变量了。
阅读全文