[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私有仓库服务器记录

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

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

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

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

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

用git服务器创建Cocopods私有库

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

创建 Git 源码服务器仓库

前置条件: 1)安装好了git软件 2)服务器:172.16.20.17 用户名:moses 密码123456 3)客户端:172.16.20.113 用户名:xx 密码:123456 4)在...

建立一个git私有仓库

原文:http://gitbook.liuhui998.com/4_12.html 一、通过SSH协议来访问仓库 1.1、基本  如果不使用第三方的代码托管服务,而是要自己在服务器上建一个网上可...
  • hudashi
  • hudashi
  • 2012年06月16日 13:32
  • 7601

用 Google Cloud 打造你的私有免费 Git 仓库

作为开发者平时可能想写点(非开源)的小东西,或者想保存一些私人配置什么的,这些也应该以 Git 的形式长期保存。毕竟 Git 的用途很广,有一份云端备份也很明智。但 Github 等服务只对开源项目免...

使用码云(git.oschina)做私有的CocoaPods仓库

CocoaChina 简书 首先感谢两位的文章对我的帮助! 想弄自己的CocoaPods仓库很久了,因为我们公司产品有两个端,很多代码都是相似的,有时直接是复制粘贴过来是很不方便的,经常改动又没...

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

方法一: 1.初始化一个空的裸仓库 $ cd /home/repo $ mkdir teamwork.git $ cd teamwork.git $ git in...

码云(gitosc)(含git安装教程)之免费私有的版本控制仓库(小白篇)

说明 最近很多朋友在项目使用过程中,需要进行版本控制,代码管理。但是 svn只能在局域网,外网的话只能是公司开发, github的话只有公开仓库是免费的,私有仓库是收费的,郎中羞涩的小白们也是不要不要...
  • hu391
  • hu391
  • 2016年10月06日 13:48
  • 5165
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[CodeVersion--GIT]在自己服务器上创建私有代码仓库
举报原因:
原因补充:

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