1

我从“计算机 1”更新了“repo”。在“repo”上,一个post-receive钩子成功触发git checkout -f了对“computer 2”的更改。

现在,在“计算机 2”上,一旦上述结帐完成,我想触发一个钩子。我在“计算机 2”上尝试了一个post-receive和一个post-checkout钩子,但没有成功。都不火。在这种情况下,我可以在“计算机 2”上使用哪个钩子?

4

1 回答 1

0

你不能只是git checkout -f,因为这意味着repo1正在将其内容转储到 repo2 工作树上:

 # repo1 post-receive hook
 GIT_WORK_TREE=/path/to/repo2 git checkout -f

您需要repo2拉 repo1 内容以更新其 ( repo2) 内容。
另外,启动更新的事实repo2意味着其他 repo2 钩子将有机会被依次触发。

 # repo1 post-receive hook
 GIT_DIR=/path/to/repo2/.git
 GIT_WORK_TREE=/path/to/repo2 git pull repo1
于 2012-06-28T14:09:41.170 回答