小编Ram*_*ndo的帖子

Windows下的Git Hook

我有以下代码在hook post-receive的工作目录中签出:

#!/bin/sh
git --work-tree=d:/websites/__gitweb --git-dir=d:/_gitrepo.git/ checkout -f
Run Code Online (Sandbox Code Playgroud)

不幸的是它似乎不起作用.但是,当我在Windows命令行(cms)中输入此命令时,该命令可以正常工作:

git --work-tree=d:/websites/__gitweb --git-dir=d:/_gitrepo.git/ checkout -f
Run Code Online (Sandbox Code Playgroud)

我检查了权限和执行属性,但没有.

更新:

我想我越来越近了.现在我知道问题是什么,但我不知道为什么会这样.挂钩实际上是被触发但我收到此消息:

remote: Starting copy from repository to work tree...
remote: fatal: Not a git repository: 'd:/_gitrepo.git/'
remote: Finished.
Run Code Online (Sandbox Code Playgroud)

我试图将d:的路径改为整个网络路径,但它仍然无效.如果我去远程存储库并且我做了一个git日志,那么更改就在那里,如果我用sh运行钩子,它就可以了.为什么说它显然不是git存储库?

windows git hook post

12
推荐指数
1
解决办法
3万
查看次数

有人可以解释这个perl片段吗?

for my $n (1, 2) {
  sub_example();
}

sub sub_example {
  my $bar = 1 if 1 == 2;
  if ($bar) {
     print "hahha, you see\n";
  }
  else {
     $bar = 1;
  }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么在第二次循环迭代中定义$ bar?

perl

2
推荐指数
2
解决办法
109
查看次数

标签 统计

git ×1

hook ×1

perl ×1

post ×1

windows ×1