设为首页 收藏本站
查看: 1455|回复: 0

[经验分享] ubuntu下安装git server以及eclipse egit插件配置

[复制链接]

尚未签到

发表于 2015-3-17 13:34:19 | 显示全部楼层 |阅读模式
  之前项目组使用svn做版本控制,尝试了一下git+svn(就是git客户端+svn服务器配置),但总感觉无法将git的强大功能体现出来,于是打算在服务器上配置git server并且给出eclipse egit插件客户端的操作。本文参考了ubuntu官网以及部分网友的blog,文中如引用均给已出相应连接。
  1.配置环境
  客户端
  笔记本:Thinkpad T400
  内存:6GB 1067MHz DDR3
  OS : Window 7 professional 64bit  sp1
  Eclipse : Indigo (Java EE)
  服务器
  OS :  Ubuntu 9.10 (Karmic) Server
  2.服务器环境
  由于服务器使用Ubuntu 9.10版本较低,在使用apt-get install git-core时提示要使用apt-get update。不过在apt-get update的时候报了很多错误,查了一下,原因是8.10,9.04,9.10,10.10等版本官方均已经停止更新,需要修改sources.list文件(/etc/apt/sources.list),改为
  deb http://old-releases.ubuntu.com/ubuntu/ karmic main  restricted     
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic main  restricted     
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates main restricted     
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates main  restricted     
deb http://old-releases.ubuntu.com/ubuntu/ karmic universe     
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic universe     
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates universe     
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates universe     
deb http://old-releases.ubuntu.com/ubuntu/ karmic multiverse     
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic multiverse     
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates multiverse     
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates multiverse
  然后使用apt-get update,不过old-releases.ubuntu.com访问速度非常慢而且没有镜像,所以可能需要执行很长的时间(我花了大概4个小时,郁闷)。更新完成后,可以进行后续安装了。
  当然如果你使用的ubuntu版本高于10.10,那可以跳过步骤2,直接进入3。
  3. git服务器
  第3部分主要参考了ubuntu官网Git服务器Gitosis安装设置,红字部分是个人补充
  3.1、安装 openssh服务器
     sudo apt-get install openssh-server openssh-client
  3.2、创建个人公钥和私钥 (如果在服务器下,会以当前用户名创建)
  在默认用户的主目录路径下,运行以下命令,按照提示创建公钥和私钥

     ssh-keygen -t rsa
  默认生成2048位,如果需要提高安全级别,也可以通过下面的命令创建公钥和私钥

     ssh-keygen -t rsa -b 4096
  默认情况下,公钥和私钥会保存在~/.ssh目录下,如下所示:

     id_rsa  id_rsa.pub  known_hosts
  3.3、安装 git服务器

     sudo apt-get install git-core
  3.4、配置 git服务器
  创建git服务器管理用户

     sudo useradd -m git
sudo passwd git
  创建git仓库存储目录

     sudo mkdir /home/git/repositories
  设置git仓库权限

     sudo chown git:git /home/git/repositories
sudo chmod 755 /home/git/repositories
  初始化全局设置

     git config --global user.name "myname"
git config --global user.email "myname@server"
  3.5、安装python的setup tool

     sudo apt-get install python-setuptools
  3.6、获取并安装gitosis

     cd /tmp
git clone git://eagain.net/gitosis.git

此处git地址已经失效,网上给出其他的也不能clone,没办法下载gitosis打包文件,解压继续。
     cd gitosis
sudo python setup.py install
  3.7、配置gitosis

     cp ~/.ssh/id_rsa.pub /tmp
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
     执行后在/home/git/repositories/下会出现gitosis-admin.git文件夹,gitosis同样使用git来进行管理,因此我们需要git clone后修改,并执行commit和push使配置生效
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
  3.8、管理gitosis配置

     cd ~
git clone git@hostname:用户名/gitosis-admin.git
此处应改为git clone git@hostname:gitosis-admin.git,也不要写成git clone git@202.194.254.21:home/git/repositories/gitosis-admin.git否则会报gitosis.serve.main:Repository read access denied。这个错误我一开始一直认为是gitosis.conf中的配置有问题,实际上是路径问题

     cd gitosis-admin/
  各个用户按照前面提到的办法生成各自的ssh公钥文件后,服务器管理员把所有人的 ssh公钥文件都拿来,拷贝到keydir目录下。
  在linux和mac下可以使用scp命令远程拷贝,在window下,可以使用winscp(图形界面),注意生成的pub文件用文本编辑器打开取文件内容最后显示的完整用户名, 比如我的tangtang@THINK,作为pub文件的文件名tangtang@THINK.pub,拷贝到keydir目录下
  修改gitosis.conf文件,如下所示

    [gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = tracker@issue-tracker
    [group developers]
writable = helloworld
     members = tangtang@THINK b@server2
    [group test]
readonly = helloworld
members = c@server3
  这个配置文件表达了如下含义:gitosis-admin组成员有tracker@issue-tracker,该组对gitosis-admin仓库有读写权限; developers组有tangtang@THINK,b@server2两个成员,该组对undergraduate仓库有读写权限; test组有c@server3一个成员,对helloworld仓库有只读权限。 当然目前这些配置文件的修改只是在你的本地,你必须推送到gitserver上才能真正生效。 加入新文件、提交并push到git服务器:
  这里首先确保在git clone后的gitosis-admin/文件夹下,使用

    git add .
git commit -am &quot;add users&quot;
git push

    经过以上步骤,服务器配置完毕
4.创建git项目
         下面我们在客户端创建git项目,并push到服务器上,这里eclipse的egit插件好像在创建git项目时有问题,所以我们仍然使用git命令行形式
         mkdir helloworld
    cd helloworld
    git init
    touch a.txt
    git add .
    git commit –am “add a.txt”
    git remote add helloworld git@hostname:helloworld.git
    git push helloworld master

    成功后会显示
  Initialized empty Git repository in /home/tangtang/helloworld/.git/
        Enter passphrase for key '/home/tangtang/.ssh/id_rsa':
        remote: Counting objects: 24, done.
        remote: Compressing objects: 100% (24/24), done.
        remote: Total 24 (delta 5), reused 4 (delta 0)
        Receiving objects: 100% (24/24), done.
        Resolving deltas: 100% (5/5), done.
  此时,hellworld已经被push到git server上
  5. window eclipse git配置
        eclipse下egit插件安装比较简单,选择Help->Install New Software输入http://download.eclipse.org/egit/updates,按照提示安装即可
  5.1  选择File->Import->Git/Projects from Git
  5.2  Select a Git Repository 选择Clone 在URI中输入ssh://git@hostname/home/git/repositories/helloworld.git 或者git@hostname:/home/git/repositories/helloworld.git 注意这里不能使用在git命令行下使用的git@hostname:helloworld.git,否则总是报错,现在不确定是否是因为window的原因(抽空用mac os试下)
  5.3  Branch Selection
DSC0000.png
  5.4 Local Destination
DSC0001.png
  Finish后从git server clone项目,直至完成
  5.5  Git Repositories 查看本地及remote状态(Window->Show View->Other->Git Repositories)
DSC0002.png
  可以看到Remotes/origin下有Fetch和Push两个路径,注意Fetch的配置
DSC0003.png
  红框部分是要求把remote origin下的所有分支都fetch到本地
  然后是Push的配置
DSC0004.png
  5.6
  如果使用了私钥,可以进行如下配置
DSC0005.png
  如果不使用ssh的话,我发现在没有安装window的eclipse下也能正常使用,不知道git是否通过别的协议传输(没有配置http以及https),这点没有搞清楚,还请大家不吝赐教。
  配置完毕后,我们可以通过使用eclipse egit插件进行源代码管理了
  
  [Update 1 2013-01-08]
  1 3.7使用的是服务器上的公钥创建gitosis-admin仓库,默认就是gitosis-admin的管理员了,但实际上我们可以通过修改gitosis-admin/gitosis.conf 文件添加客户端的管理员
  比如
  [group gitosis-admin]
writable = gitosis-admin
members = admin tangtang
  2 创建公钥密钥的方式
  重点说一下window,在window下,因为我们访问openssh server,所以必须使用openssh兼容的格式,这里如果你安装了msysgit 可以使用

   ssh-keygen -t rsa -C &quot;yourname&quot;
生成用户名为yourname的公钥和密钥,这里建议使用-C参数(否则会生成yourname@机器名的公钥密钥,后面我不管怎么设置均无法成功登陆)  把生成的id_rsa.pub复制一份,更名为yourname.pub 并通过winscp 到 你提前在服务器上clone的那个gitosis-admin仓库的keydir文件夹下,然后执行git commit和git push。当然如果你在客户端已经可以操作gitosis-admin的话,亦可以放到客户端的gitosis-admin的keydir下并同样执行git commit 和git push
  3 当你使用客户端工具比如git extension等克隆仓库时,注意仓库的url 应该是 ssh://git@remote-server-url/repositoryname.git 我之前总是把git用户名设置为之前创建的yourname,是不对的。
  

   

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-47680-1-1.html 上篇帖子: Ubuntu配置git服务 下篇帖子: Ubuntu 12.04 下安装git
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表