UBUNTU上的GIT SERVER
Git是一个开源的版本控制系统,由Linus Torvalds主导,用于支持Linux内核开发。每一个Git工作目录,都是一个完整的代码库,包含所有的提交历史。有能力跟踪所有的代码版本,而不会去依赖于网络与中央服务器。
安装
Git可以通过以下的命令进行安装
sudo apt-get install git
配置
每一个git的用户,在第一次使用的时候都需要通过以下两个命令,进行相应的配置
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
基本用法
假设用户可以通过SSH的方式访问Server,对于用户想以分布式以及安全的方式使用Git,则已经完全足够了。在服务器端,创建一个新的仓库。
git init --bare /path/to/repository
这会创建一个裸仓库,它不允许我们直接编辑相应的文件。如果你需要在服务器端保留仓库内容的复本,去掉 --bare 选项就好了。
任何具有SSH权限的客户端,均可以克隆相应的仓库
git clone username@hostname:/path/to/repository
一旦克隆到了客户端上,用户即可编辑相应的文件,然后提交得分享相应的代码:
cd /path/to/repository # 编辑修改
git commit -a # 提交所有修改到本地仓库
git push origin master # 推送修改到服务器端的仓库
安装 gitolite server
虽然以上的那些,对于创建,克隆和修改仓库已经足够。但用户在服务器端安装git,最主要是想要一个传统的源代码控制管理服务器,具有多用户与权限管理的功能。推荐的解决方案是通过以下命令,安装 gitolite server:
sudo apt-get install gitolite
配置 gitolite
相比于大多数的类Unix系统,gitolite server的配置有一些小小的区别。传统的配置文件会存放在 /etc 的目录之下,而gitolite则把自己的配置文件放在一个git的仓库之中。配置一个新的gitolite的第一步,则需要有配置仓库的访问权限。
首先,让我们为gitolite创建一个用户,并具体其访问权限。
sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
现在我们想让gitolite知晓仓库管理员的SSH公钥。我们假设当前用户是仓库的管理员。
cp ~/.ssh/id_rsa.pub /tmp/$(whoami).pub
我们切换到git用户,并将管理员的公钥导入gitolite。
sudo su - git
gl-setup /tmp/*.pub
Gitolite会允许在安装过程中,对配置文件做一些初期的修改。你现在可以通过管理员用户(即拥有管理员公钥的帐户),克隆和修改gitolite的配置仓库。切回到管理员账号,克隆配置仓库:
exit
git clone git@$IP_ADDRESS:gitolite-admin.git
cd gitolite-admin
gitolite-admin目录包含两个子目录,conf 和 keydir。配置文件存放在 conf目录,而keydir目录存放了用户的公钥信息。
管理gitolite帐户和仓库
添加一个新的帐户到gitolite很简单:只需要获取用户的SSH公钥信息,以$DESIRED_USER_NAME.pub 的形式放在keydir目录之下即可。值得注意的是,gitolite的用户名不必和系统的用户名相匹配,它们仅仅是用在gitolite的配置文件之中,管理其访问权限的。同样的,删除用户只需要删除其对应的公钥文件即可。所有修改完毕之后,别忘了提交相应的修改,然后通过以下命令推回服务器端:
git commit -a
git push origin master
仓库是需要编辑conf/gitolite.conf文件进行管理。通过空格分割,遵守相应的权限规则,指定相应的仓库即可。以下是一些默认的示例。
repo gitolite-admin
RW+ = admin
R = alice
repo project1
RW+ = alice
RW = bob
R = denise
使用服务器
要使用新创建的帐户,用户需要gitolite的管理员将其公钥导入到gitolite的配置仓库之中。然后,用户即可拥有相应的项目权限:
git clone git@$SERVER_IP:$PROJECT_NAME.git
或者为一个已存在的git仓库添加一个远程地址:
git remote add gitolite git@$SERVER_IP:$PROJECT_NAME.git
如此便搭好了一个简易的,可用的git server。为了更好的查看相应的代码,或者管理,也可使用相对较重的,gitlab开源项目。
UBUNTU上的GIT SERVER的更多相关文章
- 在阿里云上布置git server
前言 东莞,晴,26至32度. 一直以为都是使用SVN Server作为私用的版本号控制器.随着Git的大行其道.近期由于项目须要,也试着在阿里云上部署Git Server.这里由于团队人员少.我採用 ...
- Ubuntu上搭建Git服务器
下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用VMware虚拟机安装两台Ubantu系统,分别命名为gitServer和gitClient_01. 1.安装OpenSSH并配置SSH无 ...
- SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)
本文从零开始一步一步介绍如何在Ubuntu上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一. 创建Ubuntu系统(Create U ...
- Ubuntu上配置SQL Server Always On Availability Group(Configure Always On Availability Group for SQL Server on Ubuntu)
下面简单介绍一下如何在Ubuntu上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 目前在Linux上可以搭 ...
- 在windows上搭建git server Gitblit
在Windows上搭建Git Server 第1步:下载Java并安装Java.我这里下载的是jdk1.7.0_79 第2步:配置Java环境变量 右键” 计算机” => ”属性” => ...
- Configure Always On Availability Group for SQL Server on Ubuntu——Ubuntu上配置SQL Server Always On Availability Group
下面简单介绍一下如何在Ubuntu上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 目前在Linux上可以搭 ...
- 在 mac os 上搭建 git server
前言:之前学习了如何使用 git 后,一直想搭建一个本机搭建一个 git server 的,一开始不知道走了弯路用了 gitosis,折腾了我好几天都没配置好.昨晚查资料发现 gitosis 早就过时 ...
- 在Windows上搭建Git Server
Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用. 那么私有项目,如何用Git进行代码版本控制呢?我们可以自 ...
- 如何在NAS上安装Git Server
前段时间一时兴起,买了一个NAS,具体型号是QNAP TS-269L.一方面用作硬盘存储数据,另一方面为了方便就在上面搭了一个Git代码服务器.下面详述一下这个Git Server是如何搭建起来的. ...
随机推荐
- 关于linux curl 地址参数的问题
例如 url 为 http://mywebsite.com/index.PHP?a=1&b=2&c=3web形式下访问url地址,使用$_GET是可以获取到所有的参数然而在Linux下 ...
- Alfred 使用简介
1.安装(不说了去 Google 吧) 2.基础快捷键:option+space 3.打开应用程序:Alfred 几乎是一切程序的入口,你再也不需要找妈妈要开始菜单了.用快捷键呼出Alfred,输入任 ...
- c#之第一课入门
这几天看到微软的build大会,感觉微软不甘落后他人,曾经的巨头难道又要重新崛起,不管了,为了以后的饭碗,还是简单学习一些c#吧,有时这种紧张感不错的,现在由于这种紧张感,我已经掌握的java(主要弄 ...
- 使用PHP的CURL模拟POST采集开了viewstate的asp.net网页数据
用.NET做的网站如果做成POST提交方式,且开了viewstate的话,采集起来有点小繁琐,在此跟大家分享一下做法. 采的难点是必須先取得表單裏面的viewstate和datavalidtion兩個 ...
- win10蓝屏问题,关于驱动kisSaasUrlRedirectKnl64.sys 的
上周末刚从win7升级到win10:今天出现了两次蓝屏了,都是显示: xxxxxxx 百度知道链接---http://zhidao.baidu.com/question/164141456570387 ...
- Revit中如何添加水平仰视平面视图
在Revit平面视图中视角是俯视视角,但是在一些特殊的情况下,我们可能需要创建仰视视角的平面视图,例如我们需要向上看天花板的灯具布置的时候,下面举例说明添加仰视平面视图的方法. 如图在模型中有一楼板跟 ...
- [数据库]SQL Server 用户NT AUTHORITY\IUSR 登录失败
今天打开网站时,突然报这个错误,平时都好好的 Cannot open database "JMECC" requested by the login. The login fail ...
- 如何在IIS7下配置ASP+ACCESS环境
如何在IIS7下配置ASP+ACCESS环境 | 浏览:901 | 更新:2013-01-16 17:46 1 2 3 4 5 6 7 分步阅读 默认装完IIS7之后,使用ASP程序会发现提示数据库连 ...
- 每日英语:What To Expect To Wear When You're Expecting
AT THE ACADEMY AWARDS earlier this month, Kerry Washington, the star of the ABC-TV series 'Scandal,' ...
- Porter/Duff,图片加遮罩setColorFilter
同步发表于http://avenwu.net/2015/02/03/porterduff Fork on github https://github.com/avenwu/support 经常会遇到给 ...