Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将新的git repo推送到服务器上,而不使用--bare_Git - Fatal编程技术网

将新的git repo推送到服务器上,而不使用--bare

将新的git repo推送到服务器上,而不使用--bare,git,Git,我知道如何在服务器上创建一个用于拉/推等操作的裸回购,但我现在想推送到服务器上的回购是针对网站的,所以我不想创建裸回购 我希望能够在我的计算机上对我的本地repo aka进行更改,推送它们,并让它们立即反映在网站上,而无需登录到服务器并将它们拉入工作目录 有办法做到这一点吗 所以我不想创建一个简单的回购协议 我仍然建议创建一个裸回购协议 然后,仍然在服务器上,将裸repo克隆到将要提供服务的实际文件夹myFolder git clone /path/to/bare/repo.git /path/

我知道如何在服务器上创建一个用于拉/推等操作的裸回购,但我现在想推送到服务器上的回购是针对网站的,所以我不想创建裸回购

我希望能够在我的计算机上对我的本地repo aka进行更改,推送它们,并让它们立即反映在网站上,而无需登录到服务器并将它们拉入工作目录

有办法做到这一点吗

所以我不想创建一个简单的回购协议

我仍然建议创建一个裸回购协议

然后,仍然在服务器上,将裸repo克隆到将要提供服务的实际文件夹myFolder

git clone /path/to/bare/repo.git /path/to/myFolder
repo.git中的.git是指定裸存储库根文件夹的命名约定

在/path/to/bare/repo.git/hooks中,添加一个post-receive可执行文件no-extension,它会将目录更改为非bare-repo,并从bare中提取:

#!/bin/sh
unset GIT_DIR
cd /path/to/checkout/repository
git pull
git checkout -f
所以我不想创建一个简单的回购协议

我仍然建议创建一个裸回购协议

然后,仍然在服务器上,将裸repo克隆到将要提供服务的实际文件夹myFolder

git clone /path/to/bare/repo.git /path/to/myFolder
repo.git中的.git是指定裸存储库根文件夹的命名约定

在/path/to/bare/repo.git/hooks中,添加一个post-receive可执行文件no-extension,它会将目录更改为非bare-repo,并从bare中提取:

#!/bin/sh
unset GIT_DIR
cd /path/to/checkout/repository
git pull
git checkout -f

我不确定你是否可以直接在托管你的网站的git签出中执行此操作,但是你可以设置一个post-commit钩子,触发其他系统从你的git存储库更新服务器上的网站,该存储库可以是空的,也可以不是空的。这通常被称为连续部署。@下面的VonC向我展示了如何实现钩子,并且它是有效的。谢谢你的提示。我不确定你可以直接在托管你的网站的git签出中执行此操作,但是你可以设置一个post commit钩子,触发其他系统从你的git存储库更新服务器上的网站,该存储库可以是空的,也可以不是空的。这通常被称为连续部署。@下面的VonC向我展示了如何实现钩子,并且它是有效的。谢谢你的提示。这会自动运行吗?我测试过了。是的。谢谢顺便问一下,这与预接收有什么不同?@算法是的,推送完成后,它会自动运行。抱歉耽搁了:我正在睡觉。与pre-receive不同的是,您需要更新内容才能签出它。在预接收钩子期间,内容还没有完全更新。这会自动运行吗?我测试过了。是的。谢谢顺便问一下,这与预接收有什么不同?@算法是的,推送完成后,它会自动运行。抱歉耽搁了:我正在睡觉。与pre-receive不同的是,您需要更新内容才能签出它。在预接收挂钩期间,内容尚未完全更新。