美文网首页
142Linux 安装 Git 服务器

142Linux 安装 Git 服务器

作者: Jachin111 | 来源:发表于2021-09-12 11:40 被阅读0次

实验简介

Git 是一个开源的分布式版本控制软件。自诞生以来,Git 就以其开源、简单、快捷、分布式、高效等特点,应付了类似 Linux 内核源代码等各种复杂的项目开发需求。如今,Git 已经非常成熟,被广泛接受与使用,越来越多的项目都迁移到 Git 仓库中进行管理。学会使用Git,对于代码的版本控制,管理,无疑有很大的帮助。通过学习本课程,实现自己搭建一台 Git 服务器,虽然有很多现成的代码托管网站比如 Github,但是当你想保护代码的安全的时候,私有的 Git 服务器无疑是最安全的。
效果截图

image.png
常见的版本控制软件介绍
VSS(Visual Source Safe):为微软的产品,较为易学易用,使用微软的产品进行开发通常都用这个,但是 VSS 只能在 windows 平台上运行,并且不是免费软件,安全性也不高,因此应用并不太广泛。
CVS(Concurrent Version System):是免费开源的配置管理工具,其源代码和安装文件都可以免费下载。

由于其简单易用、功能强大,跨平台,支持并发版本控制,而且免费,它在全球中小型软件企业中得到了广泛使用。不过 CVS 的部署比 VSS 要复杂一些。
SVN(Subversion):作为 CVS 的重写版和改进版,其目标就是作为一个更好的版本控制软件,取代 CVS 。总的来说,CVS 在发展的过程中逐渐失去优势,已经不再适合现代开发,目前,绝大多数 CVS 服务已经改用 SVN。
Git:Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。与 CVS、Subversion 一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git 的速度很快,这对于诸如 Linux 内核这样的大项目来说自然很重要。

分布式和集中式:简单地说,“分布式”就是每一个客户端都有数据的副本,查询等的数据操作都使用副本进行;并定期或不定期地与数据交换中心进行交换,以获得最新的数据;“集中式”是指整个整个系统中只使用一份数据(只在服务器上),所有客户端必须连接上服务器才能进行数据查询等操作。

安装 Git

首先更新 apt 软件包数据库,以确保软件包列表是最新的:

$ sudo apt-get update

使用 apt-get 安装 Git:

# 安装Git
$ sudo apt-get install git

添加 git 用户

为了方便管理和操作,我们添加一个用户 git,并给他设置工作目录:

# 添加 Git 用户
$ sudo useradd git

# 设置密码,为了方便操作,密码较为简单
$ sudo passwd git
# 重复输入两次密码
image.png

注意设置密码时,密码不会回显到屏幕。

设置 git 用户的工作目录:

# 设置 git 用户的工作目录
$ sudo mkdir /home/git

#将工作目录的权限给git用户
$ sudo chown -R  git /home/git

在本地端生成密钥

在管理 Git 项目上,有 HTTPS 和 SSH 两种方式,使用 HTTPS 每次提交都要输入用户名和密码,使用 SSH 需要先配置和添加好 SSH key,我们这次实验选择在本地生成 SSH key,并将公钥发送给远程端。

# 生成密钥
# 默认将放在家目录的 .ssh 文件夹中
# 不修改名字的话,默认密钥对名为 id_rsa
$ ssh-keygen -t rsa

生成的过程中,一直回车,使用默认值即可。


image.png
# 将公钥发送给远程端
$ cat ~/.ssh/id_rsa.pub | \
 ssh git@localhost \
 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
image.png

注意:图中的 pipe> 是命令换行之后自动生成的,并不是命令的一部分。

在远程端建立仓库

由于在我们的实验里,本地端和远程端是一体的,所以对远程端的操作可以直接执行,无需 使用 ssh 到远程端去操作,现在让我们来设置 Git 远程端的配置吧。

# 切换用户到git,在本实验中用户权限的使用很重要,之后会讲解
$ su git

这里输入刚刚我们为 git 用户设置的密码,切换到 git 用户之后,进行如下操作:

# 创建仓库文件夹,-p 是指建立上层目录。
$ mkdir -p /home/git/example/project.git
$ cd /home/git/example/project.git

# 初始化仓库
$ git init  --bare

好的,到此为止,远程端就配置好了。


image.png

在本地端建立仓库

在远程端配置好了以后,就需要在本地端完成仓库的创建和配置,这一步操作和代码托管网站的操作一致。

初始化仓库

使用 exit 命令退出 git 用户,切换回 shiyanlou 账户:

# 退出 git 这个用户
$ exit

接下来,创建仓库的文件夹并初始化仓库:

$ mkdir -p /home/shiyanlou/example/shiyanlou_cs616
$ cd /home/shiyanlou/example/shiyanlou_cs616

#初始化 git 仓库
$ git init   

先配置个人的用户名和电子邮件地址:

# 设置用户名
$ git config --global user.name "shiyanlou"

# 设置用户的邮件
$ git config --global user.email  shiyanlou.localhost

在这个目录下,我们创建一个文件用于接下来的测试:

# 创建一个文档来测试提交的效果
$ echo "I am Shiyanlou Readme Doc" > ./readme

提交自己的代码

在初始化之后,我们就开始尝试提交自己的代码了,在 3.1 小节我们写了一个 readme ,现在来提交它。

$ git add .
$ git commit -m "test"
$ git remote add origin git@localhost:/home/git/example/project.git
$ git push origin master

可以看到代码成功地提交了,到此为止一个简单实用的 Git 服务器搭建就完成了。


image.png

检验效果

我们把刚才提交的代码克隆下来,看看效果如何,远程仓库是不是托管了代码。

$ cd /home/shiyanlou
$ git clone git@localhost:/home/git/example/project.git
image.png

可以看到,效果很好,文件成功的下载了。

遇到权限错误怎么办

现在我们把 /home/git 的权限改为其他用户,我们来看看会怎么样

$ sudo chown root:root /home/git

那就会在 git push 的时候出现了如图的问题:


image.png

之所以会这样,是因为 Git 服务是由 git 这个用户来操作的,现在改变了 /home/git 的所有权,git 这个用户无法操作里面的文件,所以报错了,解决这个问题的办法就是将 它的权限交给 git 这个用户,

$ sudo chown -R git:root /home/git

现在再提交就可以了。

参考资料

https://www.linux.com/learn/how-run-your-own-git-server
https://about.gitlab.com/downloads/#ubuntu1404
https://zh.wikipedia.org/wiki/Git

相关文章

  • 142Linux 安装 Git 服务器

    实验简介 Git 是一个开源的分布式版本控制软件。自诞生以来,Git 就以其开源、简单、快捷、分布式、高效等特点,...

  • Vue部署

    linux服务器安装 安装gityum install git查看安装: git --version 安装ngin...

  • Git服务器搭建

    1、安装git 服务器端: ①先检查服务器有没有自带或者安装git;查询Git版本 [root@loc...

  • Rocket搭建及刨坑

    RocketMQ安装 安装条件 Linux服务器 maven JAVA环境配置 git(使用git安装的情况下) ...

  • Jenkins出现Failed to connect to re

    解决: 1.jenkins 服务器上查看git是否已安装及安装位置 git version whereis git...

  • git服务器的搭建

    git服务器的搭建 先在你的服务器上安装git$ sudo apt-get install git 创建一个git...

  • jenkins Error performing command

    原因:服务器没安装 git解决方案:yum install git

  • gitlab

    CentOS 7 安装Git 服务器端 1.先从yum安装git yum –y install git 2.在需要...

  • Git局域网服务器搭建

    Git局域网服务器搭建 1.安装环境 2.安装Git和SSH 3.增加git用户 4.客户端安装git windo...

  • Centos7下使用gitolite搭建git服务器

    Centos7下使用gitolite搭建git服务器 安装较新版本Git 因为安装gitolite需要使用git,...

网友评论

      本文标题:142Linux 安装 Git 服务器

      本文链接:https://www.haomeiwen.com/subject/rdozwltx.html