目录: 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忽略了第六步,这是很重要的! 【linux搭建git服务器】的内容来源于互联网,若引用不当,请发邮件456@456.cn联系删除
相关文章
猜你喜欢

