【问题标题】:How I initialize a git Repository and add hooks and files into it?我如何初始化 git Repository 并向其中添加挂钩和文件?
【发布时间】: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


【解决方案1】:

也可以使用 Tortoise GIT/SVN 和 Lua 自定义预提交脚本来制作

例如:

右键单击存储库,然后选择“Git Sync ...”

Local  Branch: master
Remote Branch: master
Remote URL: origin

单击“拉”,然后单击“关闭”。本地修订已更新

右击本地仓库,进入 Tortoise Git。

在右侧弹出的上下文菜单中选择设置

在设置树(右)上选择 Hooks 脚本

点击“添加”

Hook type: Pre-Commit hook
Working tree path: ( Here lays the path to your local directory repo )

在“要执行的命令行:”中,您必须放置两条路径。第一个是 “lua.exe”的路径(假设是 D:\IDES\Lua\lua.exe ),它将执行您的脚本,第二个是执行脚本。假设我的仓库是这样的:

D:\Repos\stm32f4-dac\..
    pre-commit.lia
    dsp-stm-32f4.h <-- On the last line we have the revision number
    dsp-stm-32f4.c

那么你应该放在那里:

D:\IDES\Lua\lua.exe[这里只有空格]D:\Repos\stm32f4-dac\pre-commit.lua

在“pre-commit.lua”文件中找到最后一行,将修订号与Lua的字符串库匹配,将其转换为数字,递增,生成新字符串然后写入文件(dsp- stm-32f4.h)。

【讨论】:

    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 2012-08-23
    • 2012-01-30
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多