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的访问权限控制
  • 相关阅读:
    Leetcode Spiral Matrix
    Leetcode Sqrt(x)
    Leetcode Pow(x,n)
    Leetcode Rotate Image
    Leetcode Multiply Strings
    Leetcode Length of Last Word
    Topcoder SRM 626 DIV2 SumOfPower
    Topcoder SRM 626 DIV2 FixedDiceGameDiv2
    Leetcode Largest Rectangle in Histogram
    Leetcode Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/zhangjianbin/p/6351560.html
Copyright © 2011-2022 走看看