2022
我们一起努力

关于linux搭建git服务器的信息

目录:

  • 1、CentOS系统怎样搭建Git版本控制服务器
  • 2、gitlab 怎么在linux上建目录
  • 3、怎么在ubuntu创建git服务器
  • 4、如何使用centos 搭建git

CentOS系统怎样搭建Git版本控制服务器

Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次!
那什么是版本控制系统?
如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:
想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。
看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。
更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。
于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?
这个软件用起来就应该像这个样子,能记录每次文件的改动:版本 用户 说明 日期1 张三 删除了软件服务条款5 7/12 10:38
2 张三 增加了License人数限制 7/12 18:09
3 李四 财务部门调整了合同金额 7/13 9:51
4 张三 延长了免费升级周期 7/14 15:17
这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。搭建Git服务器
搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
假设你已经有sudo权限的用户账号,下面,正式开始安装。
第一步,安装git:
$ sudo apt-get install git第二步,创建一个git用户,用来运行git服务:
$ sudo adduser gi第三步,创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.gitGit就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
$ sudo chown -R git:git sample.git第五步,禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bas改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
第六步,克隆远程仓库:
现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.剩下的推送就简单了。
管理公钥
如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。
这里我们不介绍怎么玩Gitosis了,几百号人的团队基本都在500强了,相信找个高水平的Linux管理员问题不大。
管理权限
有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写权限会精确到每个分支甚至每个目录下。因为Git是为Linux源代码托管而开发的,所以Git也继承了开源社区的精神,不支持权限控制。不过,因为Git支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的。Gitolite就是这个工具。
这里我们也不介绍Gitolite了,不要把有限的生命浪费到权限斗争中。

gitlab 怎么在linux上建目录

GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。 但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。 在网上发现了这篇文档——Import bare repositories into your GitLab instance,并按之进行了操作。 1)设置存放代码库的主目录 vi /etc/gitlab/gitlab.rb 比如这里设置为:git_data_dir "/gitlab/repos" 2)访问刚搭建的GitLab站点,创建一个group,比如cnblogs。 这时会在 /gitlab/repos 下创建 /gitlab/repos/repositories/cnblogs 文件夹。 然后在/gitlab/repos/repositories/创建一个文件夹,比如cnblogs 3)将现有的所有git项目文件复制到这个文件夹 cp -r /data/git/* /gitlab/repos/repositories/cnblogs 4)修改一下复制过来的文件夹的所有者: chown -R git:git /gitlab/repos/repositories/cnblogs 5)运行GitLab导入命令 cd /var/opt/gitlab gitlab-rake gitlab:import:repos 等了一段时间之后,显示done,却一个项目也没导入进来。

怎么在ubuntu创建git服务器

1. 安装Git相关软件

Linux是服务器端系统,Windows作为客户端系统,分别安装Git

安装服务端:

[root@linuxprobe ~]# yum install -y git

[root@localhost ~]# git --version //安装完后,查看 Git 版本

git version 1.8.3.1

安装客户端:

下载 Git for Windows,地址:

安装完之后,可以使用Git Bash作为命令行客户端。

$ git --version

git version 2.11.1.windows.1 //安装完之后,查看Git版本

安装Gitosis

[root@linuxprobe ~]# cd software/

[root@linuxprobe software]# git clone

[root@linuxprobe software]# yum install python-setuptools -y

[root@linuxprobe software]# cd gitosis

[root@linuxprobe gitosis]# sudo python setup.py install

出现下面的信息表示安装成功了

Using /usr/lib/python2.6/site-packages

Finished processing dependencies for gitosis==0.2

2. 服务器端创建git用户来管理Git服务

[root@linuxprobe ~]# id git //查看git用户是否存在

id: git: no such user

[root@linuxprobe ~]# useradd git

[root@linuxprobe ~]# echo "123" | passwd --stdin git

[root@linuxprobe ~]# su - git //切换到git用户下

3. 配置公钥

在Windows上配置管理者,git服务器需要一些管理者,通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者,打开git命令行

$ ssh-keygen -t rsa //一直回车,不需要设置密码

~ scp ~/.ssh/id_rsa.pub git@192.168.34.184:~ //复制到git服务器上

4. 配置gitosis

使用git用户并初始化gitosis

[root@linuxprobe ~]# cd .ssh

[root@linuxprobe ~]# gitosis-init ./id_rsa.pub

Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/

Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

[root@linuxprobe ~]# chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update //添加权限

在Windows上机器上clone gitosis-admin到管理者主机

$ git clone ssh://git@192.168.34.184:22/gitosis-admin.git

$ cd gitosis-admin

$ ls

$ gitosis.conf keydir

gitosis.conf: git服务器配置文件

keydir: 存放客户端公钥

配置gitosis.conf文件

$ vim gitosis.conf

[gitosis]

[group gitosis-admin] #组名称

members = yueyong@SHA2-001 #组成员

writable = gitosis-admin #项目名称

[group test] //这里添加了"test"项目组,上传到个git服务器

members = yueyong@SHA2-001

writable = test

在Windows管理者机器上创建本地test仓库,并上传到git服务端

$ git config --global user.name "Your Name" //第一次提交需要设置个人信息,设置用户名和邮箱

$ git config --global user.email "email@example.com"

$ cd ~/repo

$ mkdir test

$ git init

$ tocuh readme.txt

提交到远程服务器

$ git add .

$ git commit -a -m 'init test'

$ git remote add repo git@192.168.186.129:test.git //repo 远程库的名称,可以换成任意名称

$ git push repo master //上传本地所有分支代码到远程对应的分支上

服务端会自动创建test仓库

[git@repositories]# pwd

/home/git/repositories

[git@linuxprobe repositories]$ ls

gitosis-admin.git test.git

5.添加其他git用户开发者

由于公司开发团队人数不断增多,手动添加开发者私钥到/home/git/.ssh/authorized_keys比较麻烦,通过上面的Windows机器的管理者统一收集其他开发者的私钥id_rsa.pub文件,然后传到服务器上,配置好后,用户即获得项目权限,可以从远程仓库拉取和推送项目,达到共同开发项目。

$ cd ~/gitosis-admin/keydir

$ mv ~/id_rsa.pub zhangsan@SHA2-002.pub //修改公钥为主机名.pub

$ vim gitosis.conf

[group test]

writable = test

members = yueyong@SHA2-001 zhangsan@SHA2-002 //添加成员

$ git add .

$ git commit -m "add zhangsan@SHA2-002 pub and update gitosis.conf"

$ git push repo master

推送完成后,新加进来的开发者就可以进行项目的开发了,后续增加人员可以这样添加进来,开发者直接把仓库clone下来就可以了。

git clone git@192.168.34.184:/home/git/repositories/test.git

报错问题:ERROR:gitosis serve main repository read access denied

根据这个报错,可以看出key是没问题的,通过排查,发现不应该把这个/home/git/repositories/test.git写全,

git clone git@192.168.34.184:test.git

这样就可以了。

另外如果是想了解GIT的使用的话可以看下.com/chapter-21.html

如何使用centos 搭建git

在很多Linux系统库中都有Git,可以直接用命令行安装。

例如Fedora中可以直接用yum install git等,参考如下:

Debian/Ubuntu

$ apt-get install git

Fedora

$ yum install git

Gentoo

$ emerge --ask --verbose dev-vcs/git

Arch Linux

$ pacman -S git

openSUSE

$ zypper install git

FreeBSD

$ cd /usr/ports/devel/git$ make install

Solaris 11 Express

$ pkg install developer/versioning/git

OpenBSD

$ pkg_add git

新版的CentOS后续好像也支持了这个功能,但是这种方法虽然简单,但是一般仓库里的版本更新不及时,比如 CentOS 仓库中的 git 最新版是1.7.1,但是 git 官方已经到2.x 的版本了。对于想要获取最新git的系统,只能下rpm包或者用源码。

步骤如下:

1、下载编译工具

yum groupinstall “Development Tools”

2、下载依赖包

yum install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel

3、下载 git 最新版本的源代码

wget

或者

wget

4、解压源文件

tar -zxvf git-latest.tar.gz

或者

xz -d git-latest.tar.xz

tar -xvf git-latest.tar

5、编译安装

autoconf

./configure

make -jn make -jn install

其中make -j n中的n为指定线程数,对于多核处理器这样可以加快编译安装的速度

6、添加link

ln -s /usr/local/bin/git /usr/bin/

这一步对于原本系统中有旧版git的系统很重要,会报告Link已存在,此时要删除原来的Link即/usr/bin/git,再执行第六步。

7、检查版本号

git --version

对于系统中存在老版的git的系统,安装了新git后用git --version查看仍然显示为老版就是因为i忽略了第六步,这是很重要的!

赞(0)
文章名称:《关于linux搭建git服务器的信息》
文章链接:https://www.fzvps.com/130747.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!