我从“计算机 1”更新了“repo”。在“repo”上,一个post-receive
钩子成功触发git checkout -f
了对“computer 2”的更改。
现在,在“计算机 2”上,一旦上述结帐完成,我想触发一个钩子。我在“计算机 2”上尝试了一个post-receive
和一个post-checkout
钩子,但没有成功。都不火。在这种情况下,我可以在“计算机 2”上使用哪个钩子?
我从“计算机 1”更新了“repo”。在“repo”上,一个post-receive
钩子成功触发git checkout -f
了对“computer 2”的更改。
现在,在“计算机 2”上,一旦上述结帐完成,我想触发一个钩子。我在“计算机 2”上尝试了一个post-receive
和一个post-checkout
钩子,但没有成功。都不火。在这种情况下,我可以在“计算机 2”上使用哪个钩子?
你不能只是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