gpt4 book ai didi

git - 如何设置 Git 钩子(Hook),以便在推送到 ssh ://peter@foo. com/~/bar.com.git 后,它将转到 ~/bar.com 并执行 git pull?

转载 作者:IT王子 更新时间:2023-10-29 00:53:37 26 4
gpt4 key购买 nike

有人建议我在远程服务器上设置

foo.com/~/bar.com       # live webpage content
foo.com/~/bar.com.git # a bare repo

所以,在我的本地机器上,我可以做一个

git push

它会推送到远程机器上的foo.com/~/bar.com.git(完整路径是ssh://peter@www.foo.com/~/bar.com.git

如何添加hook,以便在推送之后,远程服务器将cd ~/bar.com 并执行git pull 以便更新所有内容(与本地机器相同)? (不需要像 Mercurial 那样运行 git update?)

(这与 Cannot git clone a folder on a server and then edit and git push? 有关,现在我可以 ssh 到 foo.comcd ~/bar.com 并在那里等待并执行 git pull 每当从本地机器 git push 之后,但最好自动完成)

更新:请仅在您知 Prop 体细节和操作方法时才发布答案。如果您使用谷歌搜索并在此处发布第一个或第二个谷歌搜索结果,那将无济于事。

更新 2:我去了 ~/bar.com.git/hooks 并添加了一个包含内容的新文件 post-receive :

#!/bin/bash

cd ~/bar.com
git pull ../bar.com.git master

还有 chmod 755 post-receive,如果我在本地机器上编辑文件,然后 git com -m "ok"git push,它不会让更改进入远程计算机的文件夹 ~/bar.com

最佳答案

您可以添加 post-receive为此 Hook 到 ~/bar.com.git 仓库。为此,将一个可执行文件 post-receive 添加到 ~/bar.com.git/hooks/ 目录,内容为:

#!/bin/sh

unset $(git rev-parse --local-env-vars)
cd ~/bar.com
git pull

确保 post-receive 文件具有可执行位(例如 755)。

现在,无论何时将内容推送到 ~/bar.com.git 存储库,~/bar.com 存储库都会自动更新。

另见

理解为什么取消设置一些环境变量是必要的。

关于git - 如何设置 Git 钩子(Hook),以便在推送到 ssh ://peter@foo. com/~/bar.com.git 后,它将转到 ~/bar.com 并执行 git pull?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com