设置git服务器

分享于 

6分钟阅读

ubuntu

 

问题:

我最近在AmazonEC2上安装了ubuntu服务器。 我想把它当作我的git服务器,这样我就可以存储我的仓库。

那么,在哪里可以找到关于如何在ubuntu服务器上安装git的详细说明? 所有这些SSH密钥和类似的东西,多个用户等等。


回答 1:

如果你想安装一个Git服务器,那么你可以使用aking1012你或者你只需要在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



请检查这个的优秀资源。

为了生成用于安全认证的SSH密钥,你可以阅读关于 SSH身份验证的文章。


回答 2:

对于所有的Git服务器设置,我使用 Gitolite,它允许"每个分支"访问的安全粒度。 如果你在远程服务器上执行它,安装就非常简单,它就像运行交互式脚本一样简单。 除了这个"easy-to-setup"自然,它还有一个Natty和Maverick的包装


sudo apt-get install gitolite



这不会像Github那样提供web前端,也不会像Gitweb那样,但是你可以很容易地在像Gitolite这样的东西上配置并安装。


回答 3:

我喜欢 gitolite。 Pro书有一个部分,但我推荐阅读整本书。

对于你的多个用户需求:

Gitolite允许你不仅通过存储库( 像Gitosis那样) 指定权限,还允许在每个存储库中指定分支或者标记。 也就是说,你可以指定某些人( 或者一组人) 只能推出某些"判断"( 分支或者标记),但不是它的他。


回答 4:

严格遵循官方文档: https://help.ubuntu.com/community/Git ( 设置Git和项目管理的section )


回答 5:

对我来说最好的解决方案是设置 web dav。

  • 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.comsudo 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:user_password@git.yourserver.com/myrepo.git



如果你要向服务器发送确认更改,请执行以下操作:


git push origin master



你可以使用 sudo htpasswd 创建任意数量的用户。 记住,在添加更多用户时不要使用 -c switch,因为旧文件将被删除。


回答 6:

我也喜欢管理用户和安全的收费的gitolite方法。 我有一个 Git + gitolite服务器 AMI,目前正在测试。 请随意尝试,这里提供了文档:

Alestic Git服务器

使用这种方法,你可以在几分钟内拥有一个中央Git服务器和 private 存储库。 如果你不熟悉gitolite和 EC2,就有一个学习曲线。


回答 7:

这是很容易实现的 gitolite。 在不到一小时之内,你将拥有易于配置和安全的多用户git服务器。

我有一篇关于我的网站的的文章。



Server  SET  GIT  Setting  
相关文章