Praweł Asked: 2010-11-12 03:42:15 +0800 CST2010-11-12 03:42:15 +0800 CST 2010-11-12 03:42:15 +0800 CST 设置一个 git 服务器 772 我最近在 Amazon EC2 上设置了 ubuntu-server。我想用它作为我的 git 服务器,所以我可以在那里存储我的 repos。 那么,我在哪里可以找到一些关于如何在 ubuntu 服务器上设置 git 的详细说明?所有这些 SSH 密钥和类似的东西、多个用户等。 server git 8 个回答 Voted Best Answer Huygens 2010-11-12T13:30:26+08:002010-11-12T13:30:26+08:00 您可以按照 aking1012 的建议使用本教程安装 Git 服务器,也可以只在 EC2 实例上安装 SSH 服务器(保护它并更改默认端口可能是明智之举)。 Git 可以是无服务器的,您可以初始化存储库,然后通过 SSH 从远程访问它。所以在 Ubuntu 服务器上这样的指令应该这样做: GIT_DIR=project.git git init cd project.git git --bare update-server-info cp hooks/post-update.sample hooks/post-update 最后在你的服务器上安装 SSH: sudo apt-get install ssh-server 现在,您应该配置 SSH 来保护它。 是时候让你的项目上线了(你的开发机器上已有的数据): git push ssh://<username>@<remote-git-hostname>/path/to/project.git master 现在你可以开始克隆了。你继续你的开发机器: git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git 在 Git 上查看这个优秀的资源。 为了生成您的 ssh 密钥以进行更安全的身份验证,您可以阅读这篇关于SSH 身份验证的文章。 Marco Ceppi 2011-02-08T06:46:27+08:002011-02-08T06:46:27+08:00 对于我所有的 Git 服务器设置,我使用Gitolite,它允许“每个分支”访问的安全粒度。如果您在远程服务器上进行设置,则设置非常简单,就像运行交互式脚本一样简单。除了这种“易于设置”的特性之外,它还有一个 Natty 和 Maverick 包 sudo apt-get install gitolite 这不会提供像 Github 或 Gitweb 这样的 Web 前端 - 但您可以轻松地在 Gitolite 之类的东西之上配置和安装它们。 Li Lo 2010-11-13T08:59:52+08:002010-11-13T08:59:52+08:00 我喜欢gitolite。Pro Git 这本书有一节,但我建议阅读整本书。 至于您的多用户要求: Gitolite 允许您不仅通过存储库(如 Gitosis 所做的那样)指定权限,还可以通过每个存储库中的分支或标签名称来指定权限。也就是说,您可以指定某些人(或人群)只能推送某些“引用”(分支或标签),而不能推送其他人。 RobotHumans 2010-11-12T04:38:02+08:002010-11-12T04:38:02+08:00 http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way可以稍微修改以适合您的目的...类似的教程http://blog .agdunn.net/?p=277。 chris 2011-02-08T07:25:36+08:002011-02-08T07:25:36+08:00 一定要遵循官方文档:https ://help.ubuntu.com/community/Git (设置 Git 和项目管理部分) Praweł 2010-11-17T07:25:43+08:002010-11-17T07:25:43+08:00 最适合我的解决方案是设置 WebDAV。 sudo a2enmod sudo dav_fs sudo a2enmod dav 添加新文件/etc/apache2/sites-available并为其命名,例如git.yourserver.com. 编辑它并添加以下行: <VirtualHost *:80> DocumentRoot /var/www/git.yourserver.com/repos ServerName git.yourserver.net Options Indexes FollowSymLinks MultiViews <Location /> DAV On AuthType Basic AuthName "git repos" AuthUserFile /var/www/git.yourserver.net/password.dav Require valid-user </Location> </VirtualHost> 在 id 中创建目录/var/www/git.yourserver.com和目录repos sudo chown www-data /var/www/git.yourserver.com/repos sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login并为名为的用户输入密码user_login sudo chown root:www-data /var/www/git.yourserver.com/password.dav sudo chmod 640 /var/www/git.yourserver.com/password.dav 现在,sudo a2ensite git.yourserver.com和sudo service apache2 restart。 输入/var/www/git.yourserver.com/repos并创建目录,例如,myrepo.git cd myrepo.git git --bare init git update-server-info 现在,从远程服务器注销并转到要在其中编辑文件的本地目录。 git clone http://user_login:[email protected]/myrepo.git 你已经完成了。如果要将提交的更改发送到服务器: git push origin master 您可以使用sudo htpasswd. 只要记住不要使用-cswitch,添加更多用户时,因为旧文件会被删除。 Vitali Carbivnicii 2011-01-12T14:41:25+08:002011-01-12T14:41:25+08:00 使用gitolite很容易实现。在不到一个小时的时间内,您将拥有易于配置且安全的多用户 git 服务器。 我的网站上有一篇操作指南文章 Eric Hammond 2011-04-16T13:13:22+08:002011-04-16T13:13:22+08:00 我也喜欢管理用户和安全性的gitolite方法。我有一个当前正在测试的 EC2 的 Git + gitolite 服务器 AMI。随意尝试一下;文档可在此处获得: Alestic Git 服务器 使用这种方法,您可以在几分钟内拥有一个带有私有存储库的中央 Git 服务器。如果您不熟悉 gitolite 和 EC2,则有一个学习曲线。
您可以按照 aking1012 的建议使用本教程安装 Git 服务器,也可以只在 EC2 实例上安装 SSH 服务器(保护它并更改默认端口可能是明智之举)。
Git 可以是无服务器的,您可以初始化存储库,然后通过 SSH 从远程访问它。所以在 Ubuntu 服务器上这样的指令应该这样做:
最后在你的服务器上安装 SSH:
现在,您应该配置 SSH 来保护它。
是时候让你的项目上线了(你的开发机器上已有的数据):
现在你可以开始克隆了。你继续你的开发机器:
在 Git 上查看这个优秀的资源。
为了生成您的 ssh 密钥以进行更安全的身份验证,您可以阅读这篇关于SSH 身份验证的文章。
对于我所有的 Git 服务器设置,我使用Gitolite,它允许“每个分支”访问的安全粒度。如果您在远程服务器上进行设置,则设置非常简单,就像运行交互式脚本一样简单。除了这种“易于设置”的特性之外,它还有一个 Natty 和 Maverick 包
这不会提供像 Github 或 Gitweb 这样的 Web 前端 - 但您可以轻松地在 Gitolite 之类的东西之上配置和安装它们。
我喜欢gitolite。Pro Git 这本书有一节,但我建议阅读整本书。
至于您的多用户要求:
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way可以稍微修改以适合您的目的...类似的教程http://blog .agdunn.net/?p=277。
一定要遵循官方文档:https ://help.ubuntu.com/community/Git (设置 Git 和项目管理部分)
最适合我的解决方案是设置 WebDAV。
sudo a2enmod sudo dav_fs
sudo a2enmod dav
添加新文件
/etc/apache2/sites-available
并为其命名,例如git.yourserver.com
. 编辑它并添加以下行:<VirtualHost *:80>
</VirtualHost>
/var/www/git.yourserver.com
和目录repos
sudo chown www-data /var/www/git.yourserver.com/repos
sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login
并为名为的用户输入密码user_login
sudo chown root:www-data /var/www/git.yourserver.com/password.dav
sudo chmod 640 /var/www/git.yourserver.com/password.dav
现在,
sudo a2ensite git.yourserver.com
和sudo service apache2 restart
。/var/www/git.yourserver.com/repos
并创建目录,例如,myrepo.git
cd myrepo.git
git --bare init
git update-server-info
现在,从远程服务器注销并转到要在其中编辑文件的本地目录。
你已经完成了。如果要将提交的更改发送到服务器:
您可以使用
sudo htpasswd
. 只要记住不要使用-c
switch,添加更多用户时,因为旧文件会被删除。使用gitolite很容易实现。在不到一个小时的时间内,您将拥有易于配置且安全的多用户 git 服务器。
我的网站上有一篇操作指南文章
我也喜欢管理用户和安全性的gitolite方法。我有一个当前正在测试的 EC2 的 Git + gitolite 服务器 AMI。随意尝试一下;文档可在此处获得:
使用这种方法,您可以在几分钟内拥有一个带有私有存储库的中央 Git 服务器。如果您不熟悉 gitolite 和 EC2,则有一个学习曲线。