Git 服务器搭建学习笔记

介绍

Git 是一种分布式版本控制系统,广泛用于管理软件开发过程中的源代码。在使用 Git 进行协作开发时,通常需要搭建一个 Git 服务器来托管代码库,并允许多个开发人员对代码进行版本控制。

本文将介绍如何搭建 Git 服务器,并提供一个实例来演示如何在多人协作开发中使用 Git 进行版本控制。

搭建 Git 服务器

1. 确定服务器环境

在搭建 Git 服务器之前,需要先确定服务器的操作系统和网络环境。通常情况下,Linux 系统是最常用的 Git 服务器操作系统,并且需要确保服务器能够被其他开发人员访问。

2. 安装 Git

在确认服务器环境之后,需要安装 Git。以下是在 CentOS 7 上安装 Git 的命令:

Copy Code
sudo yum install git

3. 创建项目仓库

创建 Git 服务器上的项目仓库也是非常重要的一步。在项目仓库中,所有的代码都会被存储并进行版本控制。以下是在 Git 服务器上创建项目仓库的命令:

Copy Code
sudo mkdir -p /opt/git/project.git cd /opt/git/project.git sudo git init --bare

这个命令将创建一个名为 project.git 的项目仓库,并在其中初始化一个空的 Git 仓库。需要注意的是,这里使用了 --bare 参数来初始化仓库,这意味着该仓库只用于存储 Git 对象和引用,不包含工作区文件。

4. 添加用户

在创建项目仓库之后,需要添加开发人员的 SSH 公钥到服务器上,以便这些用户可以通过 SSH 协议访问 Git 服务器上的项目仓库。

以下是添加用户的步骤:

  1. 开发人员将其 SSH 公钥发送给 Git 服务器的管理员
  2. 管理员将公钥添加到 Git 服务器的 /home/git/.ssh/authorized_keys 文件中

5. 远程访问

在项目仓库创建和用户添加完成之后,开发人员可以使用以下命令来克隆项目仓库:

Copy Code
git clone git@example.com:/opt/git/project.git

这个命令将从 Git 服务器上克隆一个名为 project.git 的项目仓库。其中,example.com 是 Git 服务器的域名或 IP 地址。

示例

假设我们有一个名为 my-project 的项目需要进行版本控制。以下是基于 Git 的多人协作开发示例:

1. 创建项目仓库

在 Git 服务器上执行以下命令:

Copy Code
sudo mkdir -p /opt/git/my-project.git cd /opt/git/my-project.git sudo git init --bare

2. 添加用户

假设我们有两个开发人员:Alice 和 Bob。他们都需要将其 SSH 公钥添加到 Git 服务器上。

以下是添加用户的步骤:

  1. Alice 和 Bob 都将其 SSH 公钥发送给 Git 服务器的管理员
  2. 管理员将公钥添加到 Git 服务器的 /home/git/.ssh/authorized_keys 文件中

3. 克隆项目仓库

Alice 和 Bob 可以执行以下命令来克隆项目仓库:

Copy Code
git clone git@example.com:/opt/git/my-project.git

4. 开始开发

假设 Alice 和 Bob 分别在本地修改了代码,并进行了提交。以下是代码提交的步骤:

  1. Alice 执行 git add .git commit -m "Add feature A" 命令提交代码
  2. Bob 同样执行 git add .git commit -m "Fix bug B" 命令提交代码

5. 推送和拉取代码

为了同步本地代码,Alice 和 Bob 都需要在推送和拉取之间进行选择。以下是这些步骤:

  1. Alice 执行 git push origin master 将其本地分支推送到 Git 服务器上
  2. Bob 执行 git pull origin master 将 Git 服务器上的代码拉取到本地

6. 解决冲突

如果 Alice 和 Bob 同时修改了同一文件,则可能会产生代码冲突。这时需要手动合并代码以解决冲突。

以下是解决代码冲突的步骤:

  1. Alice 执行 git pull origin master 将 Git 服务器上的代码拉取到本地
  2. Alice 解决冲突并执行 git add .git commit -m "Fix merge conflict" 命令
  3. Alice 再次执行 git push origin master 将代码推送到 Git 服务器