第4章 Git服务器集成
4.1 Git远程服务器
在之前的操作中,所有的操作都是基于本地机器完成的。如果在公司中,一个项目是共用一个版本库的。那么所有的开发人员都应该对同一个版本库进行操作。因为Git软件本身就是用于Linux系统开发所设计的版本管理软件,所以项目中搭建的共享版本库也应该以linux系统为主。那么接下来,咱们就演示一下在CentsOS服务器中搭建Git服务器。
4.1.1 下载Git软件(linux版本)
官网下载地址:https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.1.tar.gz
将下载后的压缩文件上传到Linux系统中

4.1.2 安装Git软件
4.1.2.1 解压Git
# 将压缩文件解压到自定义位置
tar -zxvf git-2.38.1.tar.gz -C /opt/module/
# 可以更改名字,变得简短一些,好操作
cd /opt/module
mv git-2.38.1/ git
4.1.2.2 安装依赖
解压后,我们需要编译源码,不过在此之前需要安装编译所需要的依赖,耐心等待安装完成,中途出现提示的时候输入y并按回车。
#
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

4.1.2.3 删除旧版Git
安装编译源码所需依赖的时候,yum操作回自动安装旧版本的Git。

我们这里需要卸载这个旧版的Git
# 删除旧版本的Git
yum -y remove git

4.1.2.4 编译、安装Git
# 进入到Git软件的解压目录
cd /opt/module/git
# 编译时,prefix设定为Git软件安装目录
make prefix=/usr/local/git all
# 安装Git
make prefix=/usr/local/git install

4.1.2.5 配置环境变量
修改linux系统中/etc/profile文件,配置环境变量
# 配置环境变量
export PATH=$PATH:/usr/local/git/bin
# 刷新环境,让环境变量立即生效
source /etc/profile
4.1.2.6 建立链接文件
# git安装路径是/usr/local/git,不是默认路径
ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
4.1.2.7 测试安装
# 获取git软件版本
git --version

4.1.3 创建Git用户
因为Git服务器需要安装在linux系统上,当使用远程客户端操作时,就需要提供相应的Git账号进行提交的,如果你的仓库文件的用户不是git的话,是root用户或者别的用户,那么你git push ,它是不允许的,因为你的git用户没有权限。你可以给这个文件创立git用户,或者修改文件夹的权限让所有用户都可以更改
# 增加用户
adduser git
# 设定密码
passwd git

4.1.4 SSH免密登录
4.1.4.1 服务器端操作
# 进入用户目录
cd /home/git
# 在git用户根目录创建.ssh目录
sudo mkdir .ssh
sudo touch .ssh/authorized_keys
# 设定.ssh目录,authorized_keys的权限
sudo chmod -R 700 /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys
4.1.4.2 客户端端操作
# 在客户端生成SSH密钥
# 默认生成的密钥用户就是当前用户,需要和之前的全局配置保持一致
user.name=18801@LAPTOP-J9IRK5BM
user.email=18801@LAPTOP-J9IRK5BM
# 按照提示三次回车即可
ssh-keygen -t rsa

在用户根目录的.ssh文件夹内,id_rsa.pub就是我们要的公钥

将文件中的内容复制到服务器端的.ssh/authorized_keys文件中

4.1.5 创建Git版本库
4.1.5.1 创建文件目录
# 进入用户目录
cd /home/git
# 创建版本库目录
mkdir git-rep
# 设定文件所属用户
sudo chown git:git git-rep
4.1.5.2 初始化版本库
# 进入仓库目录
cd /home/git/git-rep
# 初始化仓库,和前面的git init略有不同
git init -bare test.git
# 设定文件所属用户
sudo chown -R git:git test.git
4.1.6 远程访问Git版本库
4.1.6.1 将远程仓库克隆到本地
# 将远程仓库克隆到本地,形成本地仓库
# 克隆远程仓库 => 用户@主机名:仓库地址
git clone git@linux1:/home/git/git-rep/test.git
4.1.6.2 提交文件到本地仓库
# 增加文件
git add client.txt
# 提交文件
git commit -m 'client'

4.1.6.3 将本地仓库同步到远程仓库
# 同步远程仓库
# 远程仓库默认有个别名叫origin,将本地仓库的文件推送(push)到远程仓库
# git push 远程仓库别名 分支名称
git push origin master

4.1.6.4 查看远程仓库
# 服务器端切换用户
su git
# 进入仓库
cd /home/git/git-rep/test.git
# 切换到主干分支
git checkout master
# 查看git日志
git log

4.2 GitHub服务器
公司中,我们可以搭建中央服务器让项目组开发人员共享代码,但是如果我们的开发人员都是通过互联网进行协作,而不是在同一个地方,那么开发时,程序文件代码的版本管理就显得更加重要,这就需要搭建一个互联网的版本库,让不同地点的人都可以进行访问。这里我们不用自己搭建。因为GitHub网站已经帮助我们提供了共享版本库功能。所以我们接下来就讲解一下,如何使用GitHub网站所提供的功能使用Git。

4.2.1 注册网站会员
GitHub官网地址:https://github.com/
填写你的邮箱地址和密码,姓名

一顿操作,注册完毕后,进入你的主页

4.2.2 创建新的仓库

输入仓库的相关信息


点击创建按钮,创建新的仓库。

4.2.3 本地仓库的基本操作指令
# create a new repository on the command line
echo "# git-study" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:Aitiger-coffee/git-study.git
git push -u origin main
# push an existing repository from the command line
git remote add origin git@github.com:Aitiger-coffee/git-study.git
git branch -M main
git push -u origin main
4.2.4 SSH免密操作
github支持两种同步方式“https”和“ssh”。如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。ssh模式比https模式的一个重要好处就是,每次push、pull、fetch等操作时,不用重复填写遍用户名密码。前提是你必须是这个项目的拥有者或者合作者,且配好了ssh key。
4.2.4.1 本地生成SSH密钥
# ssh-keygen -t rsa -C GitHub**账号**
ssh-keygen -t rsa -C 15811009164@163.com

4.2.4.2 集成用户公钥
执行命令完成后,在window本地用户.ssh目录C:\Users\用户名.ssh下面生成如下名称的公钥和私钥:

按照操作步骤,将id_rsa.pub文件内容复制到GitHub仓库中


点击Add按钮,增加SSH公钥信息

4.2.5 设定全局用户
git config --global user.name '15811009164'
# 这里的邮箱地址需要为GitHub网站的注册账号
git config --global user.email '15811009164@163.com'
4.2.6 创建本地库以远程地址
# 初始化本地仓库
git init
# 设置远程仓库
git remote add origin git@github.com:Aitiger-coffee/git-study.git
4.2.7 新增,提交本地仓库文件
# 新增文件
git add test.txt
# 提交文件
git commit test.txt

4.2.8 推送到GitHub远程仓库
# 推送文件
git push origin master

4.2.9 查看GitHub远程仓库

4.2.10 增加合作伙伴

选择合作账号,发出合作申请

4.2.11 合作伙伴确认
合作伙伴收到确认后,点击Join按钮继续

点击Accept Invitation按钮,进行确认

此时已经可以合作开发了。

4.2.12 远程仓库fork操作
如果项目存在大量合作伙伴,对于版本库的管理明显是一个特别大的风险,所以如果不想要选择大量的合作伙伴,但依然有人想要对项目代码进行维护,更新和扩展的话,此时,我们就可以使用fork功能。


点击Create fork按钮即可

这样就等同于创建了一个自己的远程仓库。但是这个远程仓库等同于是一个分支远程仓库,你可以随便操作,并不会影响源仓库,但是如果你的修改,更新想要融合到源仓库中,就需要提交申请了。
Ø 我们这里首先将文件改一下。


Ø 发送提交申请



Ø 合并修改请求




Ø 修改请求确认

4.3 IDEA集成GitHub
实际的开发中,代码都是采用IDE进行开发,所以我们这里介绍一下IDEA软件是如何集成GitHub远程仓库进行代码版本控制的。这里采用的IDEA版本为2022.2.1,其他版本的IDEA软件会略有差别

4.3.1 配置Git软件

4.3.2 配置GitHub账号

继续点授权按钮

继续点击授权按钮

输入GitHub账号密码



4.3.3 创建项目

4.3.4 添加项目代码

4.3.5 创建本地版本库


4.3.6 提交本地版本库






4.3.7 创建新的远程版本库

4.3.7 推送到远程版本库





4.3.8 查看历史版本




4.3.9 分支操作
4.3.9.1 创建分支

