热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu11.10Server安装Git服务器

因为后面要采用Git代替Subversion,花了点时间配置了Git服务端和客户端,像以前一样,仍然基于最新的Ubuntu11.10server/desktop系统。注意,Git是分布式管理工具,因此没有真正的Server,本文用了三台机器,分别是S1代表机房里面的Ubuntu11.10serverC1代表第一台拥有管理权限的UbuntudesktopC2代表

因为后面要采用Git代替Subversion,花了点时间配置了Git服务端和客户端,像以前一样,仍然基于最新的Ubuntu11.10 server/desktop系统。

注意,Git是分布式管理工具,因此没有真正的Server,本文用了三台机器,分别是

S1 代表 机房里面的Ubuntu 11.10 server

C1 代表 第一台拥有管理权限的 Ubuntu desktop

C2 代表 后来被添加进来的拥有管理权限的Ubuntu desktop

三台机器都可以看作是服务器。只是从方便人使用的角度,总是将项目文件提交到S1上,并从S1上获得最新项目文件。

1.Ubuntu server安装Git服务程序

下文称这台Ubuntu server为S1

[plain]
  1. sudo apt-get install git-core  
2.S1上安装Gitosis程序.

Gitosis是一个工具程序,可以帮助我们进行Git仓库的访问控制和远程管理。

[plain]
  1. sudo apt-get install python-setuptools  
  2. mkdir ~/src  
  3. cd ~/src  
  4. git clone git://eagain.net/gitosis.git  
  5. cd gitosis  
  6. sudo python setup.py install  

3.S1上创建一个git帐号。

没有密码。这个帐号是给Gitosis程序使用的。

[plain]
  1. sudo adduser \  
  2.   --system \  
  3.   --shell /bin/sh \  
  4.   --gecos 'git version control' \  
  5.   --group \  
  6.   --disabled-password \  
  7.   --home /home/git \  
  8.   git  

4.安装远程管理客户端

下文将第一个远程管理客户端称为C1

[plain]
  1. sudo apt-get install openssh-client  
  2. ssh-keygen  
如果没有安装openssh-client,才需要第一行命令。ssh-keygen命令会创建公钥和私钥文件。将公钥文件复制到服务端。然后在S1上导入到Gitosis中以后C1就无需用户名和密码便能通过SSH连接服务端了。

[plain]
  1. scp /home/chenshu/.ssh/id_rsa.pub cncm@S1:/home/cncm  
  2. sudo -H -u git gitosis-init < /home/cncm/id_rsa.pub  
得到下面的结果:

Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

意思是S1上已经成功创建了仓库目录,路径是/home/git/repositories,并且里面还创建了一个管理员仓库,叫gitosis-admin。


修改S1上一个文件的权限:

[plain]
  1. sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update  

从S1上clone出gitosis-admin仓库到C1:

[plain]
  1. /home/chenshu/my_git  
  2. cd ~/my_git  
[plain]
  1. git clone git@S1:gitosis-admin.git  
  2. Cloning into gitosis-admin...  
  3. remote: Counting objects: 5, done.          
  4. remote: Compressing objects: 100% (4/4), done.          
  5. remote: Total 5 (delta 1), reused 5 (delta 1)          
  6. Receiving objects: 100% (5/5), done.  
  7. Resolving deltas: 100% (1/1), done.  

现在你可以通过修改gitosis-admin/gitosis.conf文件来远程管理S1上的仓库:

[plain]
  1. [gitosis]  
  2.   
  3. [group gitosis-admin]  
  4. members = chenshu@chenshu-System-Product-Name  
  5. writable = gitosis-admin  

上面是之前gitosis初始化导入C1的公钥的时候自动创建的,已经将C1的用户加入到管理员成员中


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
author-avatar
莫小北
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有