跳至正文

Git使用教程(1)-CentOS搭建Git服务器

一、Git简介

Git是Linux创建人Linus Torvalds为了管理Linux 内核开发而开发的一个开源的分布式版本管理软件。它和SVN的区别主要有以下几点:

1、分布式

SVN是集中式,如果网络或服务器出了问题,将不能提交任何改动。而使用Git,则开发者可以随时提交代码到本地,即使网络或服务器出了故障,Git仍然能在本地正常工作,可以待之后再把改动一次性提交到服务器;

2、分支管理

对SVN来说,一个分支其实就是一个目录,占用空间较大。而Git使用文件差异化管理,即使开再多分支仍然是同一个目录,节约空间,而且在不同分支之间可以快速切换;

3、适用场景

相较来说,SVN适合做项目管理,而Git则更适合做代码管理;

二、服务器搭建步骤

要开始使用Git做代码管理,需要分别配置服务器和客户端。本文主要讲述如何配置Git服务器。以CentOS7.4服务器为例:

1、首先在服务器上安装Git;

yum install -y git

安装完成后,可以通过以下命令查看版本号。

git --version

2、创建git用户;

创建一个名为git的用户,用来运行git服务,同时创建git用户的主目录为/home/git。

useradd -d /home/git -m git

3、进入git用户目录,创建一个空的仓库test.git;

cd /home/git
git init --bare test.git

4、更改目录权限;

因为此时是以root身份登录的,则创建后默认权限都属于root,所以需要把test.git和所有子目录的owner都改为git,客户端pull和push才不会出现权限问题。

chown -R git:root test.git

5、禁用Git用户的shell登陆;

出于安全考虑,建议禁用shell登录,使git用户只能读写代码,不能shell登录。可以通过编辑 /etc/passwd 文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

此时客户端其实已经可以抓取Git仓库了,但每次都要输入用户名和密码,显然太麻烦了,所以使用密钥管理方式,避免每次重复输入密码。

6、创建密钥文件

在git用户的工作目录下创建.ssh目录,在.ssh目录下创建authorized_keys文件,并设置权限为600。

cd /home/git
mkdir .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys

至此,Git服务器端基本配置完成,接下来请看下一篇:客户端配置。

标签:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注