我正在尝试使用http://danielmiessler.com/study/git/#website设置git来管理我的网站。我正在使用win7中的git gui
我已经完成了说明的最后一步:git push website
在推送到网站后,我能够确认裸目录〜/ website.git中的对象目录已更新。
我的钩子叫'post_update'它有以下内容
#!/bin/sh
echo
echo "**** Pushing data to Live Server.">>~/hi.txt
echo
export > ~.file1.txt
GIT_WORK_TREE=/home/***/public_html/b1a
export >> ~.file1.txt
git checkout -f
当我去/ public_html / b1a时,它是一个空目录。请注意,我已将hooks目录和b1a更改为777。
我可以确认post_update挂钩正在触发,因为我将环境变量打印到file1.txt(如上所示)。在我看到的文件中:
GIT_DIR="."
但没有看到GIT_WORK_TREE。没有能力设置这个我就被困住了。
我将不胜感激,
提前致谢,
比尔
答案 0 :(得分:1)
这是您需要的脚本:
#!/bin/sh
echo
echo "**** Pushing data to Live Server.">>~/hi.txt
echo
GIT_WORK_TREE=/home/***/public_html/b1a git checkout -f
我真的不知道为什么以及它是如何工作的,但确实如此。
我不知道你为什么要将export
输出重定向到那些文件 - 你真的需要吗?
此脚本只检查存储库的当前HEAD
到GIT_WORK_TREE
目录。而已。如果您还有其他需要,请发表评论。
我认为你没有导出GIT_WORK_TREE
变量。
尝试更改这些行,以便您真正导出该变量而不是仅设置它:
#!/bin/sh
echo
echo "**** Pushing data to Live Server.">>~/hi.txt
echo
export GIT_WORK_TREE=/home/***/public_html/b1a
export > ~/.file1.txt
git checkout -f
第一个export
设置GIT_WORK_TREE
值并将其标记为导出,第二个将所有当前导出的变量输出到文件。
我在Linux上运行它,但我希望它在git-bash上也一样......