Git服务器的搭建笔记

来源:互联网 发布:淘宝支付方式有哪些 编辑:程序博客网 时间:2024/05/17 03:43
服务器系统选用ubuntu 系统

搭建步骤:
1.安装git
sudo apt-get install git


2.创建git用户,运行git服务
sudo adduser git

3.创建证书登录
收集所有要登陆用户公钥,就是id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
cd gitmkdir .sshcd .sshtouch authorized_keys   

接下来,把开发者的 SSH 公钥添加到这个用户的 authorized_keys 文件中。

如何找到自己的公钥?
用户主目录下,看有没有.ssh ,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。
如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

注:在创建ssh key时,有告诉你公钥所在地的提示:



4.初始化Git仓库
选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录输入命令:
sudo git init --bare sample.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
sudo chown -R git:git sample.git


5.禁用shell登录

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。


6.推送一个分支,从而把第一个版本的工程上传到仓库里了

在个人电脑里:
mkdir myprojectcd myprojectgit inittouch readmegit add readmegit commit -m 'initial commit'git remote add origin git@gitserver:/srv/sample.gitgit push origin master

这样,你的项目就推送到远程仓库上面了。


如果一个小组其他成员一同编辑项目,只需要把他的公钥加进去后,把项目复制下来:
git clone git@gitserver:/srv/sample.git

就可以一同操作了,但注意每次push项目之前,应该先git pull。



遇到的问题:
1)error: src refspec master does not match any.
error: failed to push some refs to 'git@192.168.0.29:/srv/sample.git'

原因:目录中没有文件,空目录是不能提交上去的
2)git remote add origin git@192.168.0.29:/srv/sample.git
fatal: remote origin already exists.

操作失误,远程仓库错了,如何移除掉远程仓库:
git remote rm  origin  


0 0
原创粉丝点击