在Git推送后查看网站

时间:2012-02-02 18:25:51

标签: git workflow staging

  

可能重复:
  Git Post-Receive Hook for Website Staging

我今天开始学习Git而且我只是坚持一件事。

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

在你的钩子脚本中,你应该使用chdir到服务器文档根目录并运行git pull。此外,在脚本的顶部,请确保包含

unset GIT_DIR

否则git会在你试图拉动时混淆。

答案 1 :(得分:1)

假设您在使用BASH的计算机上创建 post-commit 后接收或更新挂钩,请尝试以下操作:

#!/bin/bash

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

...

一对夫妇注意到:

  • 关于正在发生的事情的一些信息。当推送到远程存储库时,git不会自动检出新代码。因此,post-commit钩子需要检查分支上的最新代码。
  • 您可能需要告诉服务器上的git存储库以允许您推送到签出的分支。在该服务器上的git仓库中运行此命令应该可以解决问题:

    git config receive.denycurrentbranch false