暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux系统部署git服务器详细步骤

IT那活儿 2024-01-22
292

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!   


Git是什么?

-Git被业内人士看作是目前世界上最先进的分布式版本控制系统。


集装箱解决了什么问题

1. SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

2. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。


-点击查看答案-

Linux,Git 之父:

Linus Torvalds,中文名:林纳斯·托瓦茨,是发明Linux操作系统的人,也是Git(分布式版本控制系统)的缔造者,Git被业内人士看作是最厉害的分布式版本控制系统。

在linux上搭建git服务器
步骤1 安装Git
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install git

接下来我们创建一个git用户组和用户,用来运行git服务:
$ groupadd git
$ useradd git -g git

步骤2 创建证书登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里(.ssh/authorized_keys系统默认隐藏不显示),一行一个。
如果没有该文件创建它:
$ cd /home/git/
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys

之后的步骤请结合 步骤5 放置客户端公钥。
步骤3 初始化Git仓库
1)首先我们选定一个目录作为Git仓库,假定是在根目录下的/home/repository/f5.git,输入命令:
mkdir /home/repository
chown git:git repository/
cd repository
git init --bare f5.git

2)创建git仓库
mkdir -p /home/c5paragon/apps/
cd /home
cd c5paragon/apps/
git init --bare k8s.git
chown -R git:git /home/c5paragon/2

云桌面拉取:
cd D:\git
git clone git@1XX.1XX.12.63:/home/c5paragon/apps/c5paragon.git

*注:如果初始化远程仓库的话,要使用这个命令:git init --bare f5.git
这样初始化的仓库并没有.git目录,只有.git目录下的文件。
  • 不使用--bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本历史记录文件就存放在.git目录下;
  • 而使用--bare选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面。
用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作。但别的用户在将更新push上来的时候容易出现冲突。
解决办法就是使用”git init --bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”),这个就是最好把远端仓库初始化成bare仓库的原因。
说白了,就是会创建一个裸仓库,裸仓库没有工作区,服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。
3)把仓库所属用户改为git
$ chown -R git:git f5.git
步骤4 放置客户端公钥
通过 步骤2,我们已经在服务点创建了证书登录的目录,如果客户端要访问服务端,需要提供公钥到证书登录的目录中,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,以下为客户端操作
打开客户端(“假设window系统”,前提是客户端也安装了git服务,鼠标右击选择“git bash”)随机目录下的git bash,输入ssh-keygen -t rsa -C "xuxingfqiang@shsnc.com",生成ssh私钥和公钥。
初学Git及简单搭建git服务器和客户端。
此时 C:\Users\用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub:
  • id_rsa 是私钥
  • id_rsa.pub 是公钥
然后把id_rsa.pub文件放置在服务器/home/git/.ssh/authorized_keys文件中。
步骤5 在客户端clone远程仓库
将服务器上的/home/repository/f5.git库克隆到本地。
  • git clone [URL]git是用户名@服务器地址:仓库路径
  • git clone 用户名@服务器IP:目标仓库
$cd D:\git
$git clone git@ip:/home/repository/f5.git

步骤6 客户端提交到远程仓库
本地仓库在git目录下,先进入f5目录中,commit提交到本地git,之后才提交到服务器远程库。
$ cd D:\git\\f5
$ git add *
$ git commit -am 'f5'
$ git push -u origin master

提交k8s的git仓库:
$ cd D:\git\\k8s
$ git add *
$ git commit -am 'k8s'
$ git push -u origin master

拉取代码: 
$ cd D:\git
$ git clone git@ip:/home/repository/f5.git
$ git clone git@ip:/home/repository/k8s.git

*注:远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,git push origin master就行
要查看远程库的信息 使用 git remote。
它会列出你指定的每一个远程服务器的简写。如果你已经克隆了自己的仓库,那么至少应该能看到 origin - 这是 Git 给你克隆的仓库服务器的默认名字。
要查看远程库的详细信息 使用 git remote –v。
会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL,如果你的远程仓库不止一个,该命令会将它们全部列出。

END


本文作者:徐兴强(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论