文章都可以转载、引用,标明转载出处即可。

Centos 搭建Git服务器

Linux应用 Mr.c 2619℃ 0评论

  之前写了svn服务器的搭建,但是svn和git相比,在版本控制和分支管理上确实不如git好用,这里记录下搭建git服务器的过程。
  系统环境:centos 7.0_64

一:git服务安装

  1.安装git相关组件

[root@gitserver ~] yum -y install git curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

  2.创建git用户

[root@gitserver ~] groupadd git && useradd git -g git

  3.创建git用户授权登录用户文件authorized_keys

[root@gitserver ~] mkdir -p /home/git/.ssh/
[root@gitserver ~] touch /home/git/.ssh/authorized_keys
[root@gitserver ~] chmod 700 /home/git/.ssh
[root@gitserver ~] chmod 600 /home/git/.ssh/authorized_keys
[root@gitserver ~] chown git.git -R /home/git/.ssh  #所属用户这里设置很关键哦

  4.限制git用户权限,禁止shell登录
修改/etc/passwd 下git用户 git:x:1002:1002::/home/git:/bin/bash 为:

git:x:1002:1002::/home/git:/usr/bin/git-shell

授权了/usr/bin/git-shell 所以还需要拷贝对应文件到git用户目录

[root@gitserver ~] cp -R /usr/share/doc/git-1.8.3.1/contrib/git-shell-commands /home/git/
[root@gitserver ~] chown git.git -R /home/git/git-shell-commands/
[root@gitserver ~] chmod 755 /home/git/git-shell-commands/*

二:创建git仓库

  选定一个目录作为Git仓库,假定是/home/gitdata/cnyunwei.git

[root@gitserver ~] cd /home
[root@gitserver home] mkdir gitdata
[root@gitserver home] cd gitdata
[root@gitserver gitdata] git init --bare cnyunwei.git  #--bare 参数是创建空库
[root@gitserver home] chown git.git -R /home/gitdata/ #必须设置为git用户,否则无法写入文件

三:创建本地用户公钥,并导入authorized_keys ,有两种方法:

  A.使用TortoiseGit 工具生成公钥私钥(可视化界面):
下载安装TortoiseGit : https://tortoisegit.org/download/
可参考: http://jingyan.baidu.com/article/63f236280f7e750209ab3d60.html
  将生成的公钥复制,添加到服务器/home/git/.ssh/authorized_keys 文件中,然后使用TortoiseGit的Pageant程序导入自己的私钥。

  B.使用Git Bash 生成密钥:
下载安装: https://git-scm.com/download/win
打开Git Bash (类似于一个CMD窗口)

ssh-keygen -t rsa -C "email@email.com"  #邮箱这里可以选填,全部敲回车即可生成密钥

密钥文件在C:\Users\usrname\.ssh 下,将id_rsa.pub 的文件添加到服务器authorized_keys 文件中即可。

四:关联本地仓库和远程空仓库(这里是通过Git Bash 命令方式关联)

  git是采用SSH传输,如果服务器的SSH端口不是22 就需要调整URL地址

cd  e:/cnyunwei  #进入本地项目文件夹目录
git remote add origin  ssh://git@192.168.31.10:22000/home/gitdata/cnyunwei.git   #关联本地仓库到远程空仓库

  默认SSH端口的情况下使用:

git remote add origin git@192.168.31.10:/home/gitdata/cnyunwei.git

  如果出现下面的报错,是没有本地仓库的意思,先生成本地仓库再关联即可。

fatal: Not a git repository (or any of the parent directories): .git  
git init 
git remote add origin  ssh://git@192.168.31.10:22000/home/gitdata/cnyunwei.git

  测试一下提交到远程仓库:

git add --all
git commit -m "初始化"
git push -u origin master

  git服务器的安装到此完成,如果在提交文件到远程仓库时提示如下错误,请检查服务器上git仓库所属用户和用户组是否为git 。

remote: error: insufficient permission for adding an object to repository database ./objects
remote: fatal: failed to write object

主要参考自 《 搭建Git服务器 – 廖雪峰的官方网站 》 《 Git 服务器搭建 | 菜鸟教程 》

转载请注明:菜鸟运维 » Centos 搭建Git服务器

喜欢 (1)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址