浏览网站后生活的Git推

浏览网站后生活的Git推

问题描述:

可能重复:
Git Post-Receive Hook for Website Staging浏览网站后生活的Git推

我今天开始学习Git和我被困在一两件事上。

当我将本地生产存储库推送到远程临时存储库时,我希望立即能够实时查看我新推入的文件。当我尝试在远程存储库(通过FTP客户端)查找我的文件时,找不到它们。

我是否需要执行一些高级Git魔术才能实现此目标(挂钩?)?这种情况的最佳做法是什么?

再一次,我是Git的新手,并没有完全理解这个概念。也许值得注意的是,我使用Webfaction Git application作为远程存储库。

编辑:我看到this topic SO,我知道如何创建一个post-commit钩子,但我不知道应该在shell脚本中放什么。

首先,你不想使用post-commit钩子 - 这是一个客户端钩子。你想要的服务器端钩子将被接收或更新(取决于你是否使用分支机构)。

请参见:https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

在你挂机脚本,你应该CHDIR到服务器的根目录,并运行一个git拉。此外,在脚本的顶部,请确保包含

unset GIT_DIR 

否则git会在您尝试拉动时自行混淆。

假设你创建一个 后提交 后收到BASH的机器上或更新挂钩,尝试这样的事情:

#!/bin/bash 

cd /your/git/repository/directory 
git checkout -f 

...

一对夫妇的注意事项:

  • 有关正在发生的事情的信息。推送到远程存储库时,git不会自动检出新代码。所以,提交后的钩子需要检查分支上的最新代码。
  • 您可能需要告诉服务器上的git存储库允许您推送到检出分支。在该服务器上的git回购运行此命令应该做的伎俩:

    git config receive.denycurrentbranch false