Git系列(三)Ubuntu15搭建Git服务器并用客户端测试

一、安装Git服务器所需软件


先更新下系统:


$ sudo apt-get update



然后安装以下一些软件:


$ sudo apt-get install git-core openssh-server openssh-client

git-core是git版本控制核心软件
openssh-server和openssh-client是git需要通过ssh协议来在服务器与客户端之间传输文件需要的



我这里已经是最新版本的了。


接着安装Python的setuptools和gitosis,由于gitosis的安装需要依赖于python的一些工具,所以我们需要先安装python的setuptools。

执行下面的命令:


$ sudo apt-get install python-setuptools



安装成功后,接下来准备安装Gitosis,安装Gitosis之前需要初始化一下服务器的git用户信息


$ git config --global user.name "you name"   
$ git config --global user.email "******@xxx.com" 



初始化服务器用户信息后,就可以安装Gitosis了,Gitosis主要是用于给用户授权


先创建一个tools目录,然后都在这个目录下操作


$ sudo mkdir tools
$ cd tools
$ sudo git clone https://github.com/res0nat0r/gitosis.git

获取Gitosis文件后,进入到文件目录下面

cd gitosis/  

接着使用python命令安装目录下的setup.py的python脚本进行安装


$ sudo python setup.py install




二、创建Git管理员账户、配置git


新加用户git, 该用户将作为所有代码仓库和用户权限的管理者:

$ sudo useradd -m git

$ sudo passwd git



然后在/home目录下建立一个git仓库的存储点:

$ sudo mkdir /home/gitrepo


让除了git以外的用户对此目录无任何权限:

$ sudo chown git:git /home/gitrepo


然后把gitrepo目录权限设置成775。


sudo chmod 775 /home/gitrepo




由于Gitosis默认状态下会将仓库放在用户的repositories目录下,例如git用户的仓库地址默认在/home/git/repositories/目录下,这里我们需要创建一个链接映射。让他指向我们前面创建的专门用于存放项目的仓库目录/home/gitrepo


(切换到git用户)
su git 

(软链接目录)
sudo ln -s /home/gitrepo /home/git/repositories



提示:git不在sudoers文件中,此事将被报告。


通过编辑器来打开sudo vim /etc/sudoers,或者直接使用命令visudo来搞定这件事情。


打开sudoers后,像如下那样加上自己的帐号保存后就可以了。




然后再次执行刚刚那条命令就可以了。




然后在服务器端添加git用户为仓库管理员,并生成管理员ssh公钥(在这里我是直接使用的服务器作为管理员,使用其他服务器原理一样)


su git
cd ~ 
ssh-keygen -t rsa
cp /home/git/.ssh/id_rsa.pub  /tmp //上面生成的公匙
sudo -H -u git gitosis-init < /tmp/id_rsa.pub


然后用刚生成公钥id_rsa.pub来对Gitosis进行初始化,让你的管理员公钥生效(在Git服务器上进行)




出现上面的提示,就说明初始化成功。可以查看是否写入到了gitosis-admin.git里面去了




gitosis主要是通过gitosis-admin.git仓库来管理一些配置文件的,如用户权限的管理。这里我们需要对其中的一个post-update文件添加可执行的权限。


$ sudo chmod 775 /home/gitrepo/gitosis-admin.git/hooks/post-update




三、创建Git项目仓库


使用git账户在服务器上创建一个目录(fendo.git)并初始化成git项目仓库,(Git版本库统一在/home/git/repositories目录下,文件夹一定要以“.git”结尾)


su git
cd /home/gitrepo
sudo mkdir fendo.git
cd fendo.git 
sudo git init --bare
exit





以上就已经成功创建了一个名为fendo.git的项目仓库了,新建的这个仓库暂时还是空的,不能被客户端clone,还需要对gitosis进行一些配置操作。



四、使用Gitosis管理用户操作项目的权限


首先需要在前面生成ssh公钥(用来初始化gitosis)的机器上将gitosis-admin.git的仓库clone下来。在客户端机器上新建一个目录用于存放gitosis-admin.git仓库


cd ~
mkdir gitadmin
cd gitadmin
sudo git clone git@10.10.60.58:gitosis-admin.git




注意:


如果你在这一步出现要你输入密码


git clone git@xxx:/gitosis-admin.git
[root@XXX git-repo]# git clone git@XXX:gitosis-admin.git
Cloning into 'gitosis-admin'...
git@XXX's password:
Permission denied, please try again.
git@XXX's password:
Permission denied, please try again.
git@XXX's password:


那就是刚刚秘钥哪里没有配置好!!!!!


clone下来会有一个gitosis.conf的配置文件和一个keydir的目录。gitosis.conf用于配置用户的权限信息,keydir主要用户存放ssh公钥文件(一般以“用户名.pub”命名,gitosis.conf配置文件中需使用相同用户名),用于认证请求的客户端机器。


然后我在windows下通过以下命令生成ssh公钥文件


ssh-keygen -t rsa

第一次,默认,第二三次,输入密码。



该命令会在c/user/.ssh/目录下生成以下文件




然后把id_rsa.pub公钥发给管理员,管理员再把他们分别按用户名命名好,复制到keydir目录下。




注意:上面的ssh_pub目录是存在其他用户ssh公钥的一个目录。



然后编辑gitosis.conf文件


sudo vim /home/git/gitadmin/gitosis-admin/gitosis.conf

配置“fendo.git”版本库


[gitosis]


[group gitosis-admin] ####管理员组

members = git@fendo-virtual-machine  ####管理员用户名,需要在keydir目录下找到相应的.pub文件,多个可用空格隔开(下同)

writable = gitosis-admin  ####可写的项目仓库名,多个可用空格隔开(下同)


[group fendo] ####可写权限组

members = wind ####组用户

writable = fendo ####可写的项目仓库名





(公钥的命令一定要和公钥的名字一样,如上:后边的就是你的公钥名字,此时公钥的命名就为XXX.pub)


因为这些配置的修改只是在本地修改的,还需要推送到服务器中才能生效。


$ cd ~/gitadmin/gitosis-admin/
$ git add .  
$ git commit -am "add a user permission"  
$ git push origin master  


推送成功会显示下面提示信息




新增的用户不能立即生效,这时候需要重新启动一下sshd服务


sudo /etc/init.d/ssh restart



服务端的git就已经安装和配置完成了。



五、客户端(windows)使用Git


确保你已经安装git客户端,然后才能执行以下命令:


$ mkdir testgit  
$ cd testgit  
$ git init  
$ echo "this is a test text file,will push to server" > hello.txt  
$ git add .  
$ git commit -am "init a base version,add a first file for push to server"  
$ git remote add origin git@10.10.60.58:fendo.git  
$ git push origin master  


上面提示错误,那是因为,我这另外一个地方也初始化过一个仓库,然后提交过。



六、客户端(windows)安装sourceTree使用Git


先去官网下载安装包: https://www.sourcetreeapp.com/




下载好之后点击安装




点击继续(这里需要翻墙,使用google或atlassian账号登录,网速慢请耐心等待验证码出现,可用lan灯或者loco。)




这里会提示你要输入账号什么的,我是没有账户的,所以这里选择Go to my atlassian.选择注册账户然后输入一些信息




点击Sign up他就会发一封邮件到你的邮箱中去,然后登陆你的邮箱,进行验证下就可以了。然后在回到那个界面选择去我的atlassian。





输入组织什么的,点击许可,然后,他就会出现一些信息。。





然后又返回到那个界面选择使用现有账户进行登录。。




点击Log in过一会就会成功。




点击继续。。




然后点击跳过初始设置。然后他会提示您




这里点击否,然后她又提示,说找不到Git




我这里是安装好了git的,如果你没有安装git的话可以选择第一种方式,我这里就选择第二种方法。然后找那git.exe所在的目录就行了,下面她又提示




Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。选择不想使用就行了。因为,我们 使用的是Git 无需使用  Mercurial 这个。然后主界面马上就出来了。。




然后点击  克隆/新建 按钮,在弹出层,中选择创建新仓库




点击创建





然后提交到远程就行了。


  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值