1

我正在尝试使用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。没有能力设置这个我被卡住了。

我将不胜感激任何帮助,

提前致谢,

账单

4

1 回答 1

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 上是一样的......

于 2012-11-25T19:59:54.720 回答