我今天开始学习Git而且我只是坚持一件事。
当我将本地生产存储库推送到远程登台存储库时,我希望能够立即查看我新推送的文件。当我试图在我的远程存储库(通过FTP客户端)中查找我的文件时,我找不到它们。
我是否需要执行一些高级Git魔法才能实现这一目标(钩子?)?这种情况的最佳做法是什么?
同样,我是Git的新手并且还没有完全理解这个概念。也许值得注意的是我使用Webfaction Git application作为远程存储库。
编辑:我在SO上看到this topic,我知道如何创建一个post-commit钩子,但我不知道在shell脚本中放什么。
答案 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存储库以允许您推送到签出的分支。在该服务器上的git仓库中运行此命令应该可以解决问题:
git config receive.denycurrentbranch false