zoukankan      html  css  js  c++  java
  • git server 搭建指南

     搭建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的访问权限控制
     
  • 相关阅读:
    Apple http live streaming 不支持windows?
    CDN设计:[笔记]Analysis of Enterprise Media Server Workloads
    牛项目 Harvest
    一些校园招聘的题目和分析
    关于pdf转doc (word) 的工具 Solid Converter PDF
    A CAP Solution (Proving Brewer Wrong)
    6"电纸书/电子书 PaperCrop pdf重排使用心得
    CDN设计 层级化的cache_A
    Berkeley DB Hash、Btree、Queue、Recno 选择
    PowerDesigner 学习系列 简单操作
  • 原文地址:https://www.cnblogs.com/ToDoToTry/p/3956687.html
Copyright © 2011-2022 走看看