在服务器上安装git及做些操作

- 执行命令
`
sudo yum install curl-devel expat-devel gettext-devel openssl-devel
zlib-devel perl-devel
`
 - 同时下载git-1.8.2.3.tar.gz文件,
wget https://www.kernel.org/pub/software/scm/git/git-1.8.2.3.tar.gz

sudo tar -zvxf git-1.8.2.2.tar.gz
cd git-1.8.2.2

sudo make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install

```

- 增加软连接
```
sudo ln -s /usr/local/git/bin/* /usr/bin/

git --version  #如果能显示版本号,即表示成功`

```

3.在服务器安装gitosis
```
sudo yum install python python-setuptools

cd /usr/local/src

git clone git://github.com/res0nat0r/gitosis.git

cd gitosis

python setup.py install

#显示Finished processing dependencies for gitosis==0.2即表示成功

```

4.在开发机上,生产密钥并上传到服务器上
```
ssh-keygen -t rsa  
#一路回车,不需要设置密码

#上传公钥到服务器(默认SSH端口22)
scp ~/.ssh/id_rsa.pub tailin@192.168.100.202:/tmp
```

或编辑`/etc/hosts`文件,在`/etc/hosts`文件里添加如下文本:
```
# local git server
192.168.100.202 zgit
```
然后再上传自己的公钥到服务器
```
scp ~/.ssh/id_rsa.pub tailin@zgit:/tmp/

# 登录到git服务器
ls /tmp/id_rsa.pub  #显示已经上传的密钥

```

5.服务器上生成git用户,使用git用户并初始化`gitosis`

```
# 创建git版本管理用户 git
sudo useradd -c 'git version manage' -m -d /home/git -s
bin/bash  git

# 更改git用户的密码
sudo passwd git

# su 到git用户
su - git
gitosis-init < /tmp/id_rsa.pub

#显示以下信息即表示成功
#Initialized empty Git repository in
/home/git/repositories/gitosis-admin.git/
#Reinitialized existing Git repository in
/home/git/repositories/gitosis-admin.git/

#删除密钥
rm -rf /tmp/id_rsa.pub

```

6.在个人开发机上导出项目管理
```
mkdir -p /repo
cd /repo
git clone git@zgit:gitosis-admin.git

```

7.在个人开发机增加及设置管理项目
```
cd /repo/gitosis-admin

# 查看git服务器已经上传密钥
ls keydir

cat keydir/ltl@jackliu-ThinkPad.pub

#ltl@jackliu-ThinkPad.pub为已经上传的开发机生成的公密

#显示密钥 最后的字符串为 密钥用户名 这里为 ltl@jackliu-ThinkPad
vim gitosis.conf

#在文件尾增加以下内容

[group
test-git]           
# 具有写权限的组名称
writable =
test-git        
# 该组可写的项目名称
members = ltl@jackliu-ThinkPad 
guangyun.ni@yeepay.com    
#该组的成员(密钥用户名) 多个用户协同开发时,以空格分隔

# 如果要增加只读的组 参考如下
# [group
test-git-readnoly]         
# 具有都权限的组名称
# readonly =
test-git               
# 该组只读的项目名称
# members =
ltl@jackliu-ThinkPad    
# 该组的成员

#提交修改
git add .
git commit -a -m "add test-git repo"
git push

```

8.在个人开发机上初始,增加及使用项目test-git

```
cd ~/repo

mkdir test-git

cd test-git

git init

touch readme

git add .

git commit -a -m "init test-git"

git remote add origin git@zgit:test-git.git

git push origin master

```

9.增加协同开发者的公钥key到git服务器  
 
 - 执行`cd repo/gitosis-admin/keydir`切换目录
 
 - 把协同开发者的id_rsa.pub 文件里的数据 拷贝到
对应的开发者的`密钥用户名.pub`文件。如把密钥用户名 guangyun.ni@yeepay.com 的 id_rsa.pub
文件中文本 粘贴到 guangyun.ni@yeepay.com.pub 文件里,并保存

- 然后将添加数据后的目录更新到git服务器
 
 ```
 
 git add .  
 git commit -am "add guangyun.ni@yeepay.com.pub
file"  
 git push origin master  
 
 ```

centos git版本服务器配置的更多相关文章

  1. centos下升级git版本的操作记录

    在使用git pull.git push.git clone的时候,或者在使用jenkins发版的时候,可能会报类似如下的错误: error: The requested URL returned e ...

  2. 转:centos下升级git版本的操作记录

    https://www.cnblogs.com/kevingrace/p/8252517.html 在使用git pull.git push.git clone的时候,或者在使用jenkins发版的时 ...

  3. 升级 CentOS git 1.7.1 到 1.7.12

    CentOS 源里的 git 版本是 1.7.1,如果远程创建的库所用 git 的版本比它高,在 pull 的时候,如果本地有修改,就会永久阻塞:在 push 的时候就会失败. CentOS 源里的 ...

  4. centos+git+gitolite 安装和部署

    一.部署环境 系统:CentOS 6.4x64 最小化安装 IP:192.168.52.131 git默认使用SSH协议,在服务器上基本上不用怎么配置就能直接使用.但是如果面向团队服务,需要控制权限的 ...

  5. Git版本控制器使用总结性梳理

    Git为何物?Git 是什么?大家肯定会说不就是版本控制器嘛,是的Git是目前世界上最先进的分布式版本控制系统(没有之一).1)那什么是版本控制器?举个简单的例子,比如我们用Word写文章,那你一定有 ...

  6. centOS7升级git版本到2.7.3

    CentOS 自带的git版本太低,需要升级到2.1.2版本以上才能使用gitea. 升级方法: 1.安装所需软件包 yum install curl-devel expat-devel gettex ...

  7. CentOS下NFS服务器配置教程

    说明: NFS服务器: 操作系统:CentOS 5.5 IP:192.168.21.160 nfs网络文件服务器共享目录:/data/osyunwei 目录所有者:www(说明:www为nginx运行 ...

  8. Centos7升级Git版本

    centos 升级 Git 版本 问题描述 centos7 系统默认的 git 安装版本是 1.8,但是在项目构建中发现 git 版本过低,于是用源码编译的方式进行升级.同时该文章也适用于安装新的 g ...

  9. 萌新笔记——git的问题(error: object file .git/objects/* is empty...)的解决方案及对git版本库文件的了解

    由于操作不当,导致git版本库出了大问题,如下所示: error: object file .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e ...

随机推荐

  1. ExtJS4加载FormPanel数据的几种方式

    我们做web应用最多的就是处理表单,extjs为我们提供了很多处理表单的功能,很多初学者疑惑怎么加载表单数据,到底能用什么方式加载?本文中,我将我自己实验过的进行一下总结,自己备忘,也希望能帮助到其他 ...

  2. 学无止境,学习AJAX(一)

    什么是AJAX?异步JavaScript和XML. AJAX是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的 ...

  3. 静态页面参数传递&回调函数写法&快速排序的实现方法

    相信很多人都有一种陋习,就是收藏的文章,几乎从来都没有回过头来仔细看过.这次借着这次活动的机会,在<无懈可击的web设计>一书的学习过程中,穿插着讲自己曾经收藏过的,现在觉得还有价值的文章 ...

  4. 浏览器九宫格的简单实现 - 蒋宇捷的专栏 - 博客频道 - CSDN.NET

    CSS3 来源:http://blog.csdn.net/hfahe/article/details/6125890#1536434-hi-1-22083-42d97150898b1af15ddaae ...

  5. 周末“干活”之 Mesos Meetup

    周末两天都是大雾霾天,作为运营也不能在家宅,告别了技术就得腿儿勤点儿. 非常感谢 Linker 的 Sam Chen 和 数人科技 的 CTO 共同组织的Mesos Meetup,OneAPM 最帅的 ...

  6. JavaScript 判断是否为undefined

    if (typeof(reValue) == "undefined") {    alert("undefined"); }

  7. MongoDB实战指南(四):MongoDB的Journaling日志功能

    mongoDB的Journaling日志功能与常见的log日志是不一样的,mongoDB也有log日志,它只是简单记录了数据库在服务器上的启动信息.慢查询记录.数据库异常信息.客户端与数据库服务器连接 ...

  8. 去除Coding4Fun中MessagePrompt的边框(Border)

    在App.xaml文件中添加 xmlns:c4f="clr-namespace:Coding4Fun.Toolkit.Controls;assembly=Coding4Fun.Toolkit ...

  9. Spring AOP实现方式四之注入式AspectJ切面【附源码】

    现在我们要讲的是第四种AOP实现之注入式AspectJ切面 通过简单的配置就可以实现AOP了. 源码结构: 1.首先我们新建一个接口,love 谈恋爱接口. package com.spring.ao ...

  10. Android 常用UI控件之TabHost(2)简单示例

    1,布局 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tool ...