标签: githooks

从git post-update钩子调用'git pull'

我有一个使用gitolite设置的中央git repo.

我想设置一个钩子,这样每当用户推送到repo时,它会执行其他地方的拉动,然后进行一些自动化测试.

到目前为止,我只想表现它.

在hooks目录中,我在更新后创建了以下脚本名称:

#!/bin/sh  
cd /home/git/www/epicac
git pull
Run Code Online (Sandbox Code Playgroud)

当我使用./post-update调用此脚本时,它完全符合我的要求.

但是,每当我挂钩时自动调用它,我得到:致命:不是git存储库:'.'

知道为什么会这样吗?

git shell githooks

17
推荐指数
3
解决办法
1万
查看次数

git在pre-push hook中提交

我在pre-push钩子中添加了类似的东西:

gs0=$(git status)
pip-dump
gs1=$(git status)
if [ "gs0" != "gs1" ]
then
    git commit -m "pip-dump"
fi
Run Code Online (Sandbox Code Playgroud)

(这是更新我的点数要求文件)

看起来推送不是推动新提交,而是HEAD在脚本开头的时候.

如何解决?

git githooks

17
推荐指数
1
解决办法
2804
查看次数

Git Post-receive钩子与工作树的一部分

我想使用git将网站部署到测试服务器.我的网站是一个用gulp构建的wordpress主题,存储库看起来像

theme.git/
-- gulpfile.js
-- src/
-- build/
Run Code Online (Sandbox Code Playgroud)

我按照这里这里解释的步骤,在服务器上设置了一个裸存储库,配置git工作树的位置,并写一个post-receive挂钩来检查repo到那个位置.

问题是我只想将build/文件夹移动或复制到服务器上的位置.我唯一的想法就是写一个post-receive hook将repo拉到一个工作树位置(因为我觉得我读过那个裸的repos通常都没有工作树),然后cp是build文件夹到wp-content/themes/

它似乎不必要地复杂,所以我想知道是否有更有效/更常见的方式来解决它.谢谢!

git deployment wordpress githooks

17
推荐指数
1
解决办法
683
查看次数

跨平台git hooks

你如何跨各种平台(比如*nix和windows)管理git pre/post commit钩子?

是否为此方案推荐了哪些最佳做法?

git shell cross-platform githooks

16
推荐指数
1
解决办法
2720
查看次数

如何在git pre-commit钩子中将文件添加到索引中

我一直在寻找复制品,虽然其中一些有类似的标题,但我没有发现任何人和我有同样的问题,所以这里有.

我编写了一个运行的脚本,pre-commit并使用输出git status --porcelain来编译已更改的项目中的任何LESS文件.这部分工作正常.但我希望.css文件包含在当前提交中.所以除了运行编译器之外,我的脚本还会运行git add <filename>.而这里的事情变得棘手.

该文件添加到索引中,但它不是当前提交的索引.所以,如果我修改style.less,并运行git commit -a(或手动git add style.less)编译器应生成style.cssstyle.min.css并将其添加到当前提交.但是我注意到的行为只是style.less提交了,尽管有两个.css文件被添加到下一次提交的索引中.

所以我的问题是:有没有办法在预提交钩子中向提交添加文件,以便它们对该提交生效?请注意,在运行预提交挂钩之前,.css不会修改这两个文件,因此我不能在此之前添加它们.我也知道我可以以非零状态退出钩子,因此提交被取消但文件被添加,但我希望避免这种情况.有更好的想法吗?

git githooks

16
推荐指数
2
解决办法
2950
查看次数

合并冲突的Git钩子

有没有我可以用于合并冲突的git钩子?失败之后git merge,能够编写一个打开所有冲突文件的脚本会很棒$EDITOR.不幸的是,post-merge如果存在冲突,钩子不会运行,并且从我在githooks手册页中看到的,没有其他适用的钩子.

我想知道我是否错过了某些东西,或者是否有其他替代方案没有将'git merge'混淆到一个函数或类似的东西.

谢谢,克里斯

git hook githooks

16
推荐指数
1
解决办法
1725
查看次数

如果特定文件发生变化,如何自动发出警告?

我有一个php项目,当我从另一个存储库中取出并且composer.lock文件被更改时,我应该运行composer.phar install --dev.git如何自动警告我/问我是否要运行此命令?我想某种钩子可以解决这个问题,但是我怎样才能获得有关拉入之前和之后发生了什么变化的信息?

git githooks

16
推荐指数
1
解决办法
6117
查看次数

为什么git add .git/hooks/my-hook是不可能的

我想在给定存储库的克隆中始终存在一些钩子.有没有办法在存储库中的.git/hooks中添加文件?

谢谢

git git-add githooks

15
推荐指数
2
解决办法
4355
查看次数

如何在Python Git钩子中使用raw_input()?

我正在为Git编写一个预提交钩子,它运行pyflakes并检查修改后的文件中的制表符和尾随空格(Github上的代码).我想通过要求用户确认来覆盖挂钩,如下所示:

answer = raw_input('Commit anyway? [N/y] ')
if answer.strip()[0].lower() == 'y':
    print >> sys.stderr, 'Committing anyway.'
    sys.exit(0)
else:
    print >> sys.stderr, 'Commit aborted.'
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

此代码产生错误:

Commit anyway? [N/y] Traceback (most recent call last):
  File ".git/hooks/pre-commit", line 59, in ?
    main()
  File ".git/hooks/pre-commit", line 20, in main
    answer = raw_input('Commit anyway? [N/y] ')
EOFError: EOF when reading a line
Run Code Online (Sandbox Code Playgroud)

甚至可以在Git钩子中使用raw_input()或类似的函数,如果是的话,我做错了什么?

python git githooks

15
推荐指数
1
解决办法
1846
查看次数

调试git-hooks的最佳方法

调试git-hooks的最佳方法是什么?

我更喜欢的方法是添加语句以将输出添加到日志文件中.例如,以下内容.

echo 'post-receive executed' >> hooks.log
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法或记录方法?

githooks

15
推荐指数
1
解决办法
5924
查看次数

标签 统计

githooks ×10

git ×9

shell ×2

cross-platform ×1

deployment ×1

git-add ×1

hook ×1

python ×1

wordpress ×1