搭建git服务器的经验总结

一: Server端的设置

1. 安装 git, git-core

2. 安装 ssh-server. (代码上传通道)
3. 创建git 用户 指定其目录 和所在组
4. 在git的home目录下创建 repo_name.git 目录
5. 在git home 目录下 初始化repo_name.git 的服务器端裸仓库: git init --bare --shared Repo_name.git   (默认生成一个master分支)
6. 搜集用户的ssh public key ,放入到 .ssh 目录下,以实现ssh自动登陆,此过程较为复杂,分为两大步骤:
     1.配置sshd_config文件并重启sshd,
     2.将用户上传的rsa pub key 添加到authorized_keys文件中。 
     详细过程参见  ”三: ssh的受信用户的添加 
7. 添加远程仓库的develop / release分支:  git branch develop  ;  
8. 搭建gitweb, 用于方便开发者在线查看git提交与修改。参见 " 四:搭建gitweb的方法 "  ; 本步骤可选。
 
 
二:git客户端使用方法
 
0. 客户端: ssh-keygen -t rsa 生成密钥
1. 客户端: 将生成的id_rsa.pub 传给git管理者。对应于Server端的第六点。
2.客户端 : git clone git@172.26.186.177:/home/git/Repo_name.git
3.客户端:  添加代码
4.客户端: git  status ;  git add . ; git commit -m "comment for each commit"
5.客户端: 添加远程仓库:  git remote add remote_server_name git@172.26.186.117:/home/git/repo_name.git   本地:git remote add local D:\\code\\reponame.git
6.客户端: 配置git config --global, 对于你的每次提交都是必须的,这样在git server端的gitweb网站上可以清楚地看到谁提交了,email多少。
                1.  $ git config --global user.name  wangwang
            2. $ git config --global user.email wangwang@tec.com
7.客户端: push 本地代码到 远程仓库的指定分支:  git push remote_server_name  local_branch_name:remote_branch_name ;  (此时可以指定提交到远程分支的develop 还是 master)
 
 
 三: ssh的受信用户的添加 
 为实现ssh自动登陆,需搜集用户的ssh public key ,放入到 .ssh 目录下的authorized_keys文件末尾,此过程较为复杂,分为两大步骤:
     1.配置sshd_config文件并重启sshd,
     2.将用户上传的rsa pub key 添加到authorized_keys文件中。 
 
详细过程如下:
 
I. 配置sshd_config文件,并重启:
     1. su root  ;sshd_config位于/etc/ssh/ 文件夹下,需要使用root权限,同时如果出现 could not load host key: rsa_key dsa_key ecdsa_key,     也是由于这个原因,因为这三个文件只有root用户拥有读权限。
     2. vim sshd_config 
     3. 取消AuthorizedKeysFile的注释,并修改为 AuthorizedKeysFile      /home/git/.ssh/authorized_keys 
     4.重启sshd : /usr/sbin/sshd
 
II. 上传rsa pub key, 并将其添加到authorized_keys文件中。

  1. scp id_rsa.pub git@172.26.186.117:/home/git/        ; 远程拷贝
  2. mv id_rsa.pub  rename.pub                                   ; 重命名以避免与。ssh文件夹中的已有文件重名。
  3. mv rename.pub .ssh/                                            ; 移动到.ssh
  4. cat rename.pub >> authorized_keys                      ; 将该用户 添加到受信任的ssh-rsa 列表中, 很多人将此authorized_keys误认为是文件夹,从而导致添加后,客户端登陆依然失败。
注意:如果用户的id_rsa.pub 已经加入到authorized_keys, 但 git clone git@172.26.186.117:/home/git/PmsAndroid.git 后出现如下的提示信息
Agent admitted failure to sign using the key.
git@172.26.186.117's password: 
则说明授权验证的ssh-agent 没有将密钥随着请求, 需要使用ssh-add 来添加, 若ssh-add添加失败,请先运行ssh-agent 。
 
 
四:搭建gitweb的方法
   1. 在一个仓库目录下,使用git instaweb 命令即可启动运行。
默认是在1234端口。
 
 
五: 搭建gitosis / gitblit ,以方便管理员远程管理git server 的repostries。
 
 
 
六: git Server端 repo的访问权限控制
 

git server 搭建指南的更多相关文章

  1. 用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器(转)

    用开源 ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服务器   现在不用Git,都不好意思说自己是程序员. 当你想用Git,而源代码服务器是Windows系统时,你 ...

  2. windows下git server搭建

    使用gitblit1.8搭建 首先要安装JDK 然后下载gitblit,这里给一个CSDN下载 https://download.csdn.net/download/nietzsche0/104826 ...

  3. Setup a private http/nginx based GIT server

    原文:http://aaba.me/blog/2014/03/setup-a-private-http-nginx-based-git-server.html https://doomzhou.git ...

  4. Ubuntu server 搭建Git server

    Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每个客户端用户的本地都是一个版本管理控制器. Ubuntu server 版本为12.04 搭建步骤如下: ...

  5. 在 mac os 上搭建 git server

    前言:之前学习了如何使用 git 后,一直想搭建一个本机搭建一个 git server 的,一开始不知道走了弯路用了 gitosis,折腾了我好几天都没配置好.昨晚查资料发现 gitosis 早就过时 ...

  6. # 基于Gitolite搭建Git Server - 支持SSH&HTTP

    Git, 一个分布式的版本管理工具,我认为其革命性的点:在于改变了用户协作的方式,使得协作更简单. 下面讲述 使用一个开源软件 Gitolite搭建一个Git Sever, 并给了一个推荐的团队协助方 ...

  7. 搭建Git Server

    windows上如何搭建Git Server   Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用.那么私有 ...

  8. Windows下搭建Git 服务器: BONOBO GIT SERVER + TortoiseGit

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

  9. Ubuntu 搭建简单的git server

    Git 可以使用四种主要的协议来传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git 协议. 在此,我们将会讨论那些协议及哪些情形应该使用(或避免使用)他 ...

随机推荐

  1. Mac 流程图

    https://www.lucidchart.com/pages/signup?utm_expid=39895073-174.qKyHpBEbQS26y86OArD-rQ.1 https://www. ...

  2. 基于FPGA的超声波测距(一)

    硬件平台:CycloneII EP2C5Q208C8+DYP-ME007 1:超声波原理 DYP-ME007超声波测距模块可提供3cm--3.5m的非接触式距离感测功能,图1为DYP-ME007外观, ...

  3. JS实现拖动(2)

    getBoundingClientRect() 来获取页面元素的位置 document.documentElement.getBoundingClientRect 该方法返回一个对象,从而获得页面中某 ...

  4. MySQL事物系列:1:事物简介

    1:事物是一组SQL的集合,要么都执行,要么都不执行.有ACID4个特性,即:原子性.一致性.隔离性.持久性. A(Atomicity)原子性:整个事物是不可分割的工作单位. C(consistenc ...

  5. 关于0xFFFFFFFF和alpha,温故而知新

    做图像处理都好多年了,今天随手做个小画板的时候,发现一个挺有趣的小坑.而其实这个小坑,以前也坑过自己,不过太久没处理了,又踩到坑里了. 先来看看:0xFFFFFFFF>>24 这个结果是什 ...

  6. 使用fuel6.0自己主动安装openstack-juno版本号(2)

    上篇中fuel_master已经安装完毕.接下来我们介绍怎样新建一个openstack环境. 1,在web界面中新建openstack环境: 点击主界面的加入button,新建openstack环境. ...

  7. 〖Linux〗bash和expect执行ssh命令行sshcmd.exp

    #!/usr/bin/expect -f # sudo apt-get install expect # ./ssh.exp user passwd server set user [lrange $ ...

  8. 【Linux】创建不可修改文件

    有时候,我们害怕别人修改我们创建的文件,或者是误删我们创建的文件,那么我们可以使用下面的方法进行控制即可 1.创建不可删除文件 Linux:/qinys/oliver # touch test.sh ...

  9. django之创建第7-1个项目-url配置高级

    修改urls.PY文件 # -*- coding: UTF-8 -*- from django.conf.urls import patterns, include, url # Uncomment ...

  10. Dom4j完整教程,操作XML教程

    目录 1.DOM4J简介 2.XML文档操作1 2.1.读取XML文档: 2.2.获取根节点 2.3.. 新增一个节点以及其下的子节点与数据 2.4. 写入XML文件 2. 5. 遍历xml节点 2. ...