Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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组开发服务器安装程序_Git - Fatal编程技术网

git组开发服务器安装程序

git组开发服务器安装程序,git,Git,我想为我的组织部署git。我希望用户不能访问服务器,只能提交到存储库。 但是,我希望存储库是一个真正的文件系统,可以与apache虚拟主机一起使用。 我所做的工作如下: cd /home/vhosts git init --shared {projectname} git config receive.denyCurrentBranch ignore 然后,我想在每次推回到主存储库之后运行git reset--hard 这是个好主意吗?我是否应该有第二个存储库来执行git pull而不是git

我想为我的组织部署git。我希望用户不能访问服务器,只能提交到存储库。 但是,我希望存储库是一个真正的文件系统,可以与apache虚拟主机一起使用。 我所做的工作如下:

cd /home/vhosts
git init --shared {projectname}
git config receive.denyCurrentBranch ignore
然后,我想在每次推回到主存储库之后运行
git reset--hard

这是个好主意吗?我是否应该有第二个存储库来执行
git pull
而不是
git reset--hard
。。。哪个更重?我可以将其设置为
挂钩吗


谢谢。

通常的设置方法是拥有一个“裸”存储库,它是每个人都可以从中推拉的顶级主存储库。运行Apache的web服务器有自己的独立存储库(如果您缺少硬件,它们可以在同一台机器上)。您将在主存储库上安装一个post-commit钩子,该钩子在Apache的
/home/vhosts
下触发“git-pull”。(这个钩子在一台机器上最简单,但是如果你这样设置的话,你可以跨机器钩子。)

要创建裸存储库,请执行以下操作:

mkdir -p /home/git/{projectname}.git
cd /home/git/{projectname}.git
git init --shared --bare

裸存储库根本没有工作副本,只有
.git
结构的内容。

通常,设置此结构的方法是拥有一个“裸”存储库,它是每个人都从中推拉的顶级主存储库。运行Apache的web服务器有自己的独立存储库(如果您缺少硬件,它们可以在同一台机器上)。您将在主存储库上安装一个post-commit钩子,该钩子在Apache的
/home/vhosts
下触发“git-pull”。(这个钩子在一台机器上最简单,但是如果你这样设置的话,你可以跨机器钩子。)

要创建裸存储库,请执行以下操作:

mkdir -p /home/git/{projectname}.git
cd /home/git/{projectname}.git
git init --shared --bare

裸存储库根本没有工作副本,只有
.git
结构的内容。

我不确定Apache与它有什么关系

只需建立一个回购协议,就像格雷格说的那样,一个裸回购协议,然后让它成为你的主要回购协议。然后,人们从中抽离,当他们准备好时,他们就会推动它。您可能想要拒绝主回购协议上的非快进合并,以便人们总是提取最新代码,与之合并,然后推送

让人们访问repo的最佳方法是使用git守护程序和git://
协议

如果您想要一个web界面,那么就使用gitweb,但这只是一种方便


此外,中还对不同的工作流进行了一些很好的讨论,这可能有助于澄清什么是最适合您的工作流。

我不确定Apache与此有何关系

只需建立一个回购协议,就像格雷格说的那样,一个裸回购协议,然后让它成为你的主要回购协议。然后,人们从中抽离,当他们准备好时,他们就会推动它。您可能想要拒绝主回购协议上的非快进合并,以便人们总是提取最新代码,与之合并,然后推送

让人们访问repo的最佳方法是使用git守护程序和git://协议

如果您想要一个web界面,那么就使用gitweb,但这只是一种方便


此外,中还对不同的工作流进行了一些很好的讨论,这可能有助于澄清什么是最适合您的工作流。

我有您描述的设置,只做了一些修改。乔·马勒(Joe Maller)有一篇优秀的文章,我把它作为配置的基础

我有您描述的经过一些修改的设置。乔·马勒(Joe Maller)有一篇优秀的文章,我把它作为配置的基础

这个问题真的很糟糕吗?甚至没有人想批评它?我不理解设置。为什么这台服务器上的存储库“向后推”到主存储库?这个问题真的很糟糕吗?没有人想批评它?我不理解设置。为什么这台服务器上的存储库“向后推”到主存储库?我有一个团队,他们在编写针对在定制专有软件上运行的海量数据集的报告时无法进行本地测试。任何一个只做web开发的人都不应该做这种事情。在任何操作系统上的笔记本电脑上,或者在虚拟机上,或者在一个容器中,在一个可以本地运行和调试web代码的好IDE上,设置开源软件其实并不难。如果今天有人想使用这个答案,他们应该三思而后行,并考虑迁移到一个服务器设置,这样他们就可以在本地镜像本地开发/调试了。说了这句话,我确实设置了它,并且还有一个
post update
hook,它可以将集线器repo同步到主repo do“git push github master”将所有更改同步到GitHub,以便对正在进行的所有操作进行中央备份。这样,如果运行Hub repo的dev服务器死掉,那么所有的历史记录都在GitHub上完成。我有一个团队,他们无法在本地进行测试,因为他们编写了针对在定制专有软件上运行的海量数据集的报告。任何一个只做web开发的人都不应该做这种事情。在任何操作系统上的笔记本电脑上,或者在虚拟机上,或者在一个容器中,在一个可以本地运行和调试web代码的好IDE上,设置开源软件其实并不难。如果今天有人想使用这个答案,他们应该三思而后行,并考虑迁移到一个服务器设置,这样他们就可以在本地镜像本地开发/调试了。说了这句话,我确实设置了它,并且还有一个
post update
hook,它可以将集线器repo同步到主repo do“git push github master”将所有更改同步到GitHub,以便对正在进行的所有操作进行中央备份。这样,如果运行Hub repo的dev服务器死亡,那么所有历史记录都将在GitHub上运行。