Windows上的post-receive hook - GIT_WORK_DIR:没有这样的文件或目录

时间:2011-11-19 11:29:04

标签: git

我尝试在git(windows)上设置我的post-receive hook。 这是脚本:

#!/bin/sh
echo "post-receive hook"
GIT_WORK_TREE=/d/test git checkout -f

当我在我的本地存储库上执行git push时,我看到这个echo消息,脚本被正确调用。

但收银台没有运行!控制台视图中存在错误:

remote: fatal: Could not switch to '/d': No such file or directory

但是当我把这个命令放在Git Bash中时,它可以工作!

2 个答案:

答案 0 :(得分:2)

来自评论:

GIT_WORK_TREE=/Volumes/D/test git checkout -f

作品。

然而,OP RobertM评论:

  

如果我要从另一台电脑上推?我的Windows机器上有其他克隆,此路径不可用

这是一个不同的问题,例如可以通过驱动器命名约定来解决:可以决定将远程仓库(d:\test或任何其他路径)的任何路径与特定驱动器号关联({例如{1}},Windows subst command

答案 1 :(得分:0)

我在我从本地工作站推送的网络服务器上运行mysysgit,并使用以下的接收后脚本:

#!/bin/sh
git --work-tree=/cygdrive/d/www --git-dir=/cygdrive/d/CodeRepositories/tempRepo.git checkout -f

一开始让我感到困惑的是文件不是UNIX格式,你可以用Notepad ++来改变它。注意,我正在使用cygwin来推送SSH,因此您的目录名可能需要修改。