我尝试在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中时,它可以工作!
答案 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,因此您的目录名可能需要修改。