【发布时间】:2015-11-17 12:18:11
【问题描述】:
我想初始化一个空的本地存储库,然后用来自this 的数据(文件)填充它。我想附加一个 pre-commit 钩子来获取最后一个修订号并将其作为文本自动插入到源代码中。我认为,如果我想这样做,我还需要一些名称以点开头的疯狂文件夹(例如 .git、.gitattrubutes )。到目前为止,我发现该结构应该类似于 master/. 分支上的结构:
.gitattributes
.git/(hooks,logs,refs.. e.g.)
Diff.txt,
text.c,
.....
我应该如何准备预提交挂钩(如果最新版本是 120,它会增加 120 并写入 121)
我正在使用 Windows 7 和 Tortoise Git
谢谢!
【问题讨论】:
-
你能澄清一下 you 在这种情况下对 revision number 的含义是什么,commit-sha、file-sha 或自定义编号(git 使用 sha用于识别修订,因此不能是顺序的)?
-
它应该是一些自定义数字(就像在 SVN 中一样),因为我必须打印它来识别服务器上安装的版本,尽管提交/文件哈希对于终端打印来说非常长。
-
输入匹配字符串后,我得到: Git Commit ID: $Id: 6715b1028ee270c0a435b04cdbbcf4d952f8130d $ 认为它似乎与提交无关,而是它所在文件的哈希值. 有什么办法可以调用... ` "Version :" + tostring(getCommitCount(GitRepo) + 1); ` 或者只获取头部修订的前 7 个符号 ` "Version:" + substring(getCommitID(GitRepo),0,6); `
-
查看git-scm.com/book/en/v2/Customizing-Git-Git-Attributes 上的“关键字扩展”一章,其中描述了如何为关键字扩展添加一些自定义,也许这会有所帮助。
-
是的,没错。可能这就是为什么在 test.c 中设置 ID 后,我的内容看起来像 ` Commit( K + 2 ) Git Commit ID: $Id: 6715b1028ee270c0a435b04cdbbcf4d952f8130d $ ` 这实际上是文件本身的哈希 ...
标签: git github git-commit pre-commit-hook