问题标签 [githooks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8402 浏览

svn - 自动同步 Subversion 存储库和 Git 存储库

我的项目在网络文件系统上有一个 Subversion 存储库,一个新团队希望使用 Git 访问它,并能够提交它并从中获取更新。

我的想法是git-svn在同一个网络文件系统上创建一个新的 Subversion 存储库的裸克隆,并确保两个存储库相对于彼此始终是最新的。

这样做的方法可能是为 Subversion 和新的 Git 存储库添加一个 post-commit 挂钩,这将各自更新对方的存储库。

Subversion post-commit 钩子将包括git svn rebase, 和 Git 一个git svn dcommit.

问题是我将不得不使用某种锁来确保没有人提交到任一存储库,而其他存储库也被提交,因为在任何提交之前它们始终必须保持同步。这有几个缺点,其中包括提交到 Subversion 或推送到 Git 存储库所需的时间(它必须等待钩子完成),以及一些用户可能无法运行的事实git svn(因为它是未安装在他们的机器上),这意味着他们在提交/推送时无法更新其他存储库。

我该如何解决这些问题?Subversion 和 Git 挂钩会是什么样子?

0 投票
2 回答
34579 浏览

git - 如何在 git 中的 fetch 或 pull 命令后立即执行命令?

我克隆了 GHC(格拉斯哥 Haskell 编译器)存储库。为了构建编译器,您需要几个库,它们都可以作为 git 存储库使用。为了方便人们使用,GHC 黑客包含了一个脚本sync-all,该脚本在执行时会更新所有依赖的存储库。

现在我的问题是:我怎样才能让 git./sync-all pull在我git pull自动执行之后执行?我听说过一些关于使用钩子的事情,但我真的不知道,我必须做什么。

0 投票
10 回答
17250 浏览

git - 将 PowerShell 脚本作为 git 挂钩运行

是否可以将 PowerShell 脚本作为 git 挂钩运行?

我在 PowerShell 提示符下运行 git,这应该没有任何区别,但我似乎无法让它们工作,因为挂钩的命名没有扩展名,并且 PowerShell 需要(AFAIK).ps1 扩展名。我不确定这是问题所在,还是其他问题。

0 投票
1 回答
1848 浏览

hook - Gitolite钩子不传播

我一遍又一遍地阅读了大量的 gitolite 文档。这是我的配置:

Git 用户运行 gitolite,而我作为另一个用户安装了 Gitolite,该用户具有 root 权限。我使用 gl-system-install 方法安装。

现在,我看到了 hooks/common 目录的两个副本,/usr/local/share/gitolite/hooks/common并且/home/git/.gitolite/(我打算使用第一个副本来实现系统范围的实现)

gitolite-source位于/home/user/gitolite-source

我在/home/user/gitolite-source/hooks/common/目录中放入了一些虚拟挂钩(post-udpate、post-update.secondary、post-receive 和 post-commit)。所有这些都设置了 exec 位。

如果我在此目录中编辑更新挂钩并再次重新运行设置,则较新的更新挂钩(在现有存储库中)将符号链接到/usr/local/share/gitolite/hooks/common.

但是,即使 source/hooks/common 目录中的任何较新的挂钩都被复制到两个挂钩位置,较新的符号链接也不会出现在我现有的存储库中。

简而言之:gitolite 复制了自己的钩子,但忽略了我的。

知道为什么吗?

0 投票
2 回答
31823 浏览

git - 如何设置一个 Git 钩子,以便在推送到 ssh://peter@foo.com/~/bar.com.git 后,它会转到 ~/bar.com 并执行 git pull?

有人建议我在远程服务器上设置

所以,从我的本地机器上,我可以做一个

它将推送到foo.com/~/bar.com.git远程机器上(完整路径是ssh://peter@www.foo.com/~/bar.com.git

如何添加一个钩子,以便在推送之后,远程服务器会cd ~/bar.com并做一个git pull,以便更新所有内容(与本地机器相同)?(不需要git update像 Mercurial 那样运行?)

(这与Cannot git clone a folder on a server and then edit and git push有关? 现在我可以ssh到foo.comcd ~/bar.com在那里等待,并在本地机器git pull之后git push随时执行,但拥有它会很好自动完成)

更新:如果您知道具体细节以及如何做,请仅发布答案。如果你用谷歌搜索并在这里发布第一个或第二个谷歌结果,它不会有帮助。

更新 2:我去~/bar.com.git/hooks并添加了一个post-receive包含内容的新文件:

还有chmod 755 post-receive,如果我在本地机器上编辑一个文件,然后git com -m "ok"git push它不会使更改进入远程机器的文件夹~/bar.com

0 投票
1 回答
25626 浏览

git - 我如何对 git hooks 中的新标签做出反应?

我想设置一个基于传入标签创建 CDN 样式目录结构的 git 挂钩。因此,例如,如果本地存储库中的最后一个标签是“v1.2.1”并且我使用“v1.2.2”拉取提交,它应该会看到新标签并将存储库直接克隆到新标签(../1.2 .2) 相应地。

我很确定我想将它附加到 post-receive,但是我在文档中找不到任何关于如何读取传入标签的 git hooks 的内容。他们是在不同的钩子上交付的吗?我真的需要让 shell 脚本运行一个 git 命令来查看是否有任何新提交有新标签吗?

谢谢!

0 投票
7 回答
18424 浏览

git - 使用 git commit 钩子附加票号?

所以我的分支以 bugtracker 票号命名,类似于“issue-1234”,我们有一个约定,总是在提交消息中写下票号。我想知道是否可以在我处理 issue-* 分支时自动在提交消息中附加票号,而无需我明确输入。

我查看了 git commit 钩子,即 pre-commit、prepare-message 和 post-commit,它们似乎都不能做我想做的事。提交后挂钩接近,但您无法修改使用 -m 提交的消息。

重申一下,我想知道这是否可能:

在分支上:issue-1234

提交后,在 git log 中,它显示消息为:

0 投票
2 回答
1787 浏览

git - 可以在暂存、添加或推送之前使用 git 挂钩替换密码吗?

可以在暂存、添加或推送之前使用 git 挂钩替换密码吗?

我希望在提交或推送之前用模板替换密码。

例如,假设我用“PWDEXLUDE_password”作为纯文本密码的前缀,而钩子用 <> 替换它,因此在部署阶段,脚本可以查找模板,在数据库中查找密码,并将该模板替换为生产密码.

git可以使用或可能使用类似的东西吗?

0 投票
1 回答
353 浏览

visual-studio-2010 - 子模块更新调用了哪些 githooks?

所以这里的情况。我有一个带有多个子模块的 git 存储库。顶级目录和所有子模块都包含 Visual Studio 2010 解决方案。

顶级存储库取决于子模块是否是最新的,并且每次更新子模块时都需要重新构建它们。我想做的是,因为有任意数量的子模块,所以在 git 中制作某种更新后挂钩来编译刚刚更新的子模块。

所以我的问题是:更新子模块时会调用哪些钩子(如果有)?似乎结帐后可能是我想要的,但我不确定。

我们使用 TortoiseGit 和 Git for Windows(msysgit) 作为后端,如果这有所作为的话。

0 投票
2 回答
604 浏览

git - 是否有一个钩子可以更新克隆/拉取文件中的 $Id$?

我有一个裸露的(远程)GIT 存储库,其中有几个有幸提交的用户。在存储库克隆/拉取上,我希望每个包含魔法的源文件$Id:$都扩展为 smth。喜欢:$Id: <name-of-last-committer> <data>

如果这个展开/折叠的魔术字符串不会影响文件修改状态,那就太棒了。

我想它是通过钩子完成的。我想知道是否有任何现成的这样的钩子?或者我的任务如何$Id解决?谢谢。