本文主要内容来自菜鸟教程,在它的基础上增加一些解释说明(红字部分),如侵删!
https://www.runoob.com/git/git-server.html
以 Centos 为例搭建 Git 服务器。
1、安装Git
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git
接下来我们 创建一个git用户组和用户,用来运行git服务:
$ groupadd git (创建用户组名称为git,名字根据自己来定)
$ useradd git -g git (添加一个用户名为git的用户到git用户组中)
注:这里比较混淆人的地方是使用了两个相同的名字,为避免混淆,建议使用git_group和git_user这样的名称加以区分
2、在windows客户端创建公钥
打开Git目录下的Git Bash,输入ssh-keygen,回车
生成的密钥放在id_rsa.pub中。
注:回车后会提示设置密钥存储的文件名,使用默认的id_rsa就好,如下图
3、创建证书登录
把我们的公钥导入到服务器的/home/git/.ssh/authorized_keys文件里,一行一个。
如果没有该文件创建它:
$ cd /home/git/
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys
4、初始化Git仓库
首先我们选定一个目录作为Git仓库,假定是/home/gitrepo/runoob.git,在/home/gitrepo目录下输入命令:
$ cd /home
$ mkdir gitrepo
$ chown git:git gitrepo/
$ cd gitrepo
注:
$ git init --bare gittest.git
Initialized empty Git repository in /home/gitrepo/gittest.git/
以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
$ chown -R git:git gittest.git
5、克隆仓库
$ git clone [email protected]:/home/gitrepo/gittest.git
Cloning into 'gittest'... warning: You appear to have cloned an empty repository. Checking connectivity... done.
192.168.0.1 为 Git 所在服务器 ip ,你需要将其修改为你自己的 Git 服务 ip。
这样我们的 Git 服务器安装就完成。
注:这里有一个非常混淆人的地方是[email protected],服务器用户名使用git,这让许多人以为是跟前面的git是一个意思。本人照着教程试了好几遍,一直提示需要输密码.
Cloning into 'a9school'...
[email protected]'s password:
fatal: Could not read from remote repository.
后来从别的博客中得知,这里的git其实是之你当前使用的服务器的登录名称,比如说你的服务器用户名是默认的root,那么你的写法就是
root@服务器ip:/home/gitrepo/gittest.git
另外,如果使用乌龟Tortorise Git clone的话,用户名和密码也就是你的服务器用户名和密码。
附常见问题:
在windows平台下git add 的时候经常会出现错误:fatal: CRLF would be replaced by LF in xxx......
问题原因:
Git在windows下,默认是CRLF作为换行符,git add 提交时,检查文本中有LF 换行符(linux系统里面的),则会告警。所以让git忽略该检查即可。
解决办法,执行Git命令:
$ git config --global core.autocrlf false
$ git config --global core.safecrlf false
附:一定要执行两个命令,只执行第一个不生效。
最后,非常感谢原博主菜鸟教程的分享