Github发布提交或合并修改/创建文件

时间:2019-05-03 11:15:17

标签: git github

我想问一下每次对master提交或合并时将文件添加到github master分支的最佳方法。

文件应命名为build.c之类的文件,并且在文件中应为提交或合并之后的master分支提交计数。我希望从远程存储库中完成此操作,所以git hooks不会起作用。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

这在github上是不可能的,这将是一个非常糟糕的主意。

“将文件添加到github master分支”意味着添加提交。因此,每次按下时,您都将向master分支添加一个额外的提交。如果不拉动或用力推动,您将无法再次提交。该文件会随着每次提交而更改,因此几乎所有合并都会产生冲突。

您应该做的是修改构建过程,以计算所需的数字并将其放入没有提交的文件中。另请参见git-describe,它赋予每个提交一个唯一的标识,而不仅仅是Git SHA更具可读性。

答案 1 :(得分:0)

如果您要记录的仅仅是提交计数,我建议使用git notes

注释附在提交之后,避免了重写提交或直接向分支创建新的提交。

要将注释添加到master的开头,

# in the local repository
git fetch origin master
# add a note
git notes add -m "commit count:$(git rev-list FETCH_HEAD --count)" FETCH_HEAD
# push the note to the remote repository
git push origin refs/notes/commits

要显示笔记,

git log --notes

要隐藏笔记,

git log --no-notes

要仅检索提交记录,

git log -1 $commit --pretty=%N

答案 2 :(得分:0)

此预提交钩子将立即执行。

#!/bin/sh
#pre-hook to log master commit count then add branch ahead of master and record into a build_number.h file.
countM=$(git rev-list master --count) #master commit count
countB=$(($(git rev-list master.. --count) + 2)) #branch ahead of master commit count +1 for the merge +1 for this commit.
echo $(($countM + $countB)) > build_number.h
git add build_number.h
exit 0