[CodeVersion--GIT]在自己服务器上创建私有代码仓库

原创 2017年10月17日 16:44:27

简述

在小型团队或公司项目中,一般都会有自己的服务器,而将项目代码放在服务器上管理,开发人员通过网络可以访问。这里主要对如何在自己的服务器上新建git代码仓库和管理。这里代码服务器系统用的是Linux(Ubuntu和Debian),客户端(团队开发人员电脑)用的是Win10系统。
因为是技术开发团队,所以使用gitolite作为git服务管理的工具(可以控制具体repo甚至branch的对于开发者的权限)。关于gitolite可以参考使用Gitolite搭建轻量级的Git服务器

配置步骤

这里写图片描述
因此实际上git代码仓库创建,是需要Server和Client都相互协商进行的,而一般Server上的操作是交给运维管理人员来做。

具体过程

客户端git安装与key生成

这里客户端用的是Windows,首先安装git,直接下载git for windows软件进行安装即可,然后在Windows系统的任意的目录下,右键单击就可看到“Git Bash Here”的选项,
这里写图片描述
选择后就会进入git bash命令窗口了:
这里写图片描述
在该命令窗口下,需要进行配置和生成SSH public key。
配置用户与邮件名

$git config --global user.name "XiaoSu"
$git config --global user.email "Xiaosu@126.com"

这个配置的客户端的用户和邮件名称,会在后续的git提交过程中显示,可以表明提交的用户和信息。
接下来是生成Key

$ssh-keygen      // 注释:也可以用$ ssh-keygen -t rsa -C XiaoSu

这个过程会需要输入一些确认信息,可以设置私钥的密码等,也可以不设置私钥密码,这个看自己的情况来定。
生成的Key在windows下一般是在“C:\Users\Administrator.ssh”目录下,
这里写图片描述
这里的id_rsa是本地私钥,需要保密,不能泄露,而id_rsa.pub是公钥,需要分发交给git服务器管理员放到git服务器上的,通过这一套key后续才能正确的通过SSH去访问服务器。
这时候需要将这个生成的id_rsa.pub重新命名一下(因为所有客户端生成的public key的文件名称都一样,这时候可以将id_rsa.pub重命名为XiaoSu.pub,便于后面在服务器上对不同团队成员进行管理)。然后同样在git bash中,使用scp命令将本地windows上重命名了的XiaoSu.pub复制到服务器上(如果windows用户没有权限,可以将XiaoSu.pub交给管理员去处理即可)

$ scp XiaoSu.pub root@192.168.1.9:/tmp

这里是将Windows本地的XiaoSu.pub放到了我自己的192.168.1.9服务器的root账户的/tmp目录下,这个过程需要输入自己root账户的密码才行的。

服务器端git与gitolite安装配置等

首先登陆自己的Linux服务器(直接在服务器端操作,或者在远程使用SSH登陆等方式),首先需要安装git

# apt-get update
# apt-get install git -y

然后添加git账户(单独使用一个git账户来管理所有git相关的东西),并接着切换到git用户下:

# useradd git -d /home/git -m -s /bin/bash
# su git
$ cd ~

此时已经位于/home/git,git user,此时需要安装gitolite,因此在/home/git下创建两个目录,一个bin用于gitolite安装路径,一个src用于放置gitolite源码,

$ mkdir -p ${HOME}/bin
$ mkdir -p ${HOME}/src

此时切换到src目录下并从github clone下来gitolite的源码:

$ cd src
$ git clone http://github.com/sitaramc/gitolite

然后通过源码将gitolite安装到bin目录下:

${HOME}/gitolite/install -to ${HOME}/bin

这样,gitolite就安装好了。
之前从我的Windows客户端复制了public key到服务器的/tmp目录下了,此时需要设置这个SSH public key

${HOME}/bin/gitolite setup -pk /tmp/XiaoSu.pub

随后就会看到在/home/git目录下自动生成了projects.list文件和repositories目录(repositories下会默认有gitolite-admin.git和testing.git两个仓库了)。

客户端clone gitolite-admin并管理git仓库权限

此时回到windows客户端,用如下命令clone刚才服务器上生成的gitolite-admin仓库:

$ git clone git@192.168.1.9:gitolite-admin.git

此时就看到clone下来的gitolite-admin有如下两个文件夹:
这里写图片描述
其中conf里面是一个配置文件,用于配置不同仓库的不同团队成员的访问权限,而keydir是所有客户端的public key。

新增一个代码仓库

在clone了gitolite-admin仓库的客户端,是整个git服务器仓库的管理者(只有管理者才能clone gitolite-admin仓库,其他成员都不能)。在clone下来的gitolite-admin中,修改conf目录下的gitolite.conf文件,比如在末尾加上:

repo host-testing
    RW+     =   XiaoSu

然后将gitolite-admin的改动用git add…, git commit…, git push等git常用操作更新到服务器,此时在服务器的/home/git/repositories下面就会自动增加了host-testing.git的仓库,此步骤为在gitolite里注册新项目
仍然继续在任意的客户端,准备好放入git服务器进行维护管理的代码或文档等资料,可以是完全新建的项目,也可以是之前的旧的git仓库项目。
如果是新项目:需要在项目根目录下使用如下命令:

$ git init

此时就会看到根目录下生成了.git目录了。
如果是旧的git项目:就不需要使用git init命令,而是需要使用:

$ git remote rm origin

断开链接到旧服务器地址的远程仓库。

然后使用如下命令将该项目链接到服务器上的刚刚新建的host-testing远程仓库,并push资料上去:

$ git remote add origin git@192.168.1.9:host-testing.git
$ git add .
$ git commit -m "Initial Revision"
$ git push --set-upstream origin master

接下来就可以供团队进行协作开发和维护了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Git之使用GitHub搭建远程仓库

引言: 在前面,介绍了如何使用Git,构建我们的本地仓库,轻松的实现了版本控制以及代码还原,修改日志查看等;假如是多个人一起来开发一个程序呢?我们需要一个作为服务器的远程仓库!当然搭建一个服务器是需...
  • hebbely
  • hebbely
  • 2016年07月08日 11:07
  • 1780

一步一步搭建git私有仓库服务器记录

参考链接:廖老师博客-搭建Git服务器 WXie的博客-git搭建 1、首先安装好linux系统,本文以Ubuntu为例进行解析 2、安装好系统打开终端     ...
  • ldz15838245189
  • ldz15838245189
  • 2016年07月29日 09:59
  • 1556

搭建git私有服务器及同步更新自己网站的文件

一、搭建git私有服务器 下面以ubuntu为例 1.安装git(如果没有安装的话) sudo apt-get install git 2.新建一个git用户组 sudo groupadd git...
  • u012763794
  • u012763794
  • 2016年03月29日 19:06
  • 2501

git 服务器搭建,在自己服务器上搭建私有仓库

创建一个简单的私人Git版本控制服务器,首先得有个服务器(屁话)。这种方式适合人比较少的情况,管理不需要很复杂,只要增加几个账号就能搞定。 如下面的情况,有一个服务器,两个客户端。 服务器:Deb...
  • gb4215287
  • gb4215287
  • 2017年08月01日 21:23
  • 360

git 常用命令总结和git服务器代码仓库创建

进来一段时间一直在忙碌,很少回头总结学过,用过的知识,由于缺少总结导致下次在遇到的时候总是记忆很模糊,有种似曾相识但却无能为力的感觉。特在此加以总结形成博客 创建git 仓库: git confi...
  • liuhaomatou
  • liuhaomatou
  • 2015年07月16日 21:02
  • 4664

CocoaPods私有仓库的创建与使用(svn服务器)

众所周知,CocoPods是iOS一个非常好用的依赖管理工具,可以使用它很好的管理和更新第三方库,在公司的开发过程中,公司内部也尝尝有可以不同项目复用的功能模块,公司希望可以使用CocoPods 进行...
  • MoRenYaoJing
  • MoRenYaoJing
  • 2016年11月21日 15:54
  • 1662

用git服务器创建Cocopods私有库

前面说不写这种形式的了,可是其实后期接到通知测试的比较多的还是这种形式,就是代码保存公司的svn服务器, 库的配置信息提交在git服务器上。因此在这里还是详细记录下具体的做法。    1.创建工程: ...
  • MoRenYaoJing
  • MoRenYaoJing
  • 2016年11月28日 15:30
  • 703

创建 Git 源码服务器仓库

前置条件: 1)安装好了git软件 2)服务器:172.16.20.17 用户名:moses 密码123456 3)客户端:172.16.20.113 用户名:xx 密码:123456 4)在...
  • lyl494223339
  • lyl494223339
  • 2014年11月05日 13:12
  • 768

创建git服务器上用的裸仓库方法

方法一: 1.初始化一个空的裸仓库 $ cd /home/repo $ mkdir teamwork.git $ cd teamwork.git $ git in...
  • zhuangtim1987
  • zhuangtim1987
  • 2014年10月20日 09:08
  • 2871

Git安装与创建代码仓库

Git下载地址 https://git-for-windows.github.io/ 点击download即可下载 下载完成后,双击安装包,选择安装位置一路next即可完成安装。 在开始菜...
  • Alger_
  • Alger_
  • 2017年06月17日 18:24
  • 138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[CodeVersion--GIT]在自己服务器上创建私有代码仓库
举报原因:
原因补充:

(最多只允许输入30个字)