【发布时间】:2015-09-04 23:25:40
【问题描述】:
解释我为什么要这样做很复杂,但我想做的是为特定的 git 存储库配备一个接收后挂钩,该挂钩执行以下操作:
- 移动到测试目录
- 克隆刚刚更新的项目。
- 结帐特定分支。
- 做一些测试
post-receive 代码如下所示(简化):让“repo”为 git 存储库的名称,让“testdir”为同级目录的名称,初始为空,让“dev”为名称分公司。
cd ../testdir
git clone --local ../repo .
git checkout dev
但是,当脚本中的代码到达“git checkout”时,git 会以“fatal: not a git repository: '.'”响应
我不知道为什么 git 认为“testdir”不是 git 存储库。如果我从命令行(而不是在接收后)运行该命令,那么它们可以正常工作。我不知道为什么这种行为会与接收后不同。有什么想法吗?
【问题讨论】:
-
这是我原帖中的错字。那不是问题。我克隆到当前目录“testdir”。
-
如果你执行 cd ../testdir git clone --local ../repo 。 (注意“。”)然后您仍然在 testdir 中,并且包含存储库的克隆。那么你还在同一个目录中
-
哎呀,错过了尾随的
.。对不起!