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文件中。
- scp id_rsa.pub git@172.26.186.117:/home/git/ ; 远程拷贝
- mv id_rsa.pub rename.pub ; 重命名以避免与。ssh文件夹中的已有文件重名。
- mv rename.pub .ssh/ ; 移动到.ssh
- 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:
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的访问权限控制
作者:
fandyst
出处: http://www.cnblogs.com/todototry/
关注语言: python、javascript(node.js)、objective-C、java、R、C++
兴趣点: 互联网、大数据技术、大数据IO瓶颈、col-oriented DB、Key-Value DB、数据挖掘、模式识别、deep learning、开发与成本管理
产品:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处: http://www.cnblogs.com/todototry/
关注语言: python、javascript(node.js)、objective-C、java、R、C++
兴趣点: 互联网、大数据技术、大数据IO瓶颈、col-oriented DB、Key-Value DB、数据挖掘、模式识别、deep learning、开发与成本管理
产品:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。