CentOS自建Git服务端,Android Studio 添加自建远程库


SVN是集中式管理版本控制,Git分布式版本控制,相对来说,Git更加的灵活一些。现在N多做APP研发的都采用了Git来管理代码仓库。

github就是这样一个平台,提供代码的管理。但是很多技术公司,还是希望使用自己的Git服务器!

网路上有很多教程,但是都不太详细,多半都是抄来抄去。

我们这里安装的是 git-2.11.2.tar.gz 版本,记得去官方网站下载!


第一步,先安装依赖包:


yum -y install gcc gcc-c++ make automake autoconf libtool zlib-devel perl-CPAN gettext gettext-devel openssl-devel expat-devel curl-devel perl-devel perl-ExtUtils-MakeMaker


具体这些包都是干什么用的,我也不太清楚,你们自己百度吧,或许某些包是不需要安装的。


第二步,安装 Git 服务器端:注意我的安装位置:/data/git 目录下。我把 git-2.11.2.tar.gz 上传到了/data/ide目录下。


	mkdir /data/git

	cd /data/ide

	tar -zxvf git-2.11.2.tar.gz

	cd git-2.11.2

	make prefix=/data/git all

	make prefix=/data/git install

第三步,把Git命令加入到环境变量中,这样我们就可以在任何目录下,都可以执行Git命令,注意路径啊。


	echo "export PATH=$PATH:/data/git/bin" >> /etc/bashrc

	source /etc/bashrc

	git --version

	git version 2.11.2

我在这里执行了版本命令,显示是 2.11.2版本,这个说明,我安装成功了。


第四步,我们使用Git命令配置一下


	git config --global user.name "your name"

	git config --global user.email "your [email protected]"
	
	git config --list

我们设置了您的name和email,这个根据自身情况设置就行了。


第五步, 创建一个git用户,并给这个用户创建SSH秘钥目录,git用户的名称随意,尽量不要用"git"

	groupadd git_xxx

	useradd -g git_xxx git_xxx

	passwd git_xxx
	
	XXXXXXXXXXXX         // 密码没有实质意义,因为我们不使用密码登陆, 但还是要复杂一些吧。


	cd /home/git_xxx     // 每个账号都会在home下有个同名目录,这个大家都应该清楚。

	mkdir .ssh           // 这个是目录,有点啊,不要去掉啊 

	cd .ssh

	vi authorized_keys   // SSH访问权限文件, 里面存放客户端提交的公钥,稍后讲解。
	
	:wq


	chown git_xxx:git_xxx /home/git_xxx/.ssh

	chown git_xxx:git_xxx /home/git_xxx/.ssh/authorized_keys

上面的内容,需要大家仔细注意,创建git用户后,还要到该用户目录下创建秘钥文件,并将秘钥文件归属给创建的git用户。


第六步,出于安全考虑,你可以用 Git 自带的 git-shell 工具限制 git 用户的活动范围。这可以通过编辑 /etc/passwd 文件完成。

	vi /etc/passwd

	git_xxx:x:500:500::/home/git_xxx:/bin/bash

	改为:

	git_xxx:x:500:500::/home/git_xxx:/data/git/bin/git-shell

注意啊,改动的内容其实就是后面的路径而已。

现在 git_xxx 用户只能用 ssh 连接来推送和获取 Git 仓库,而不能直接使用服务器的 shell。尝试普通 ssh 登录的话,会被拒绝登录。


第七步,Git服务器打开RSA认证,解开注释即可。

	vi /etc/ssh/sshd_config

	RSAAuthentication yes
	PubkeyAuthentication yes
	AuthorizedKeysFile  /home/git_xxx/.ssh/authorized_keys


	service sshd restart

   Git的仓库地址有两种方式:

    一种是SSH连接方式,形式为:[email protected]:repertory/project.git

    一种是HTTPS形式,   形式为: https://xxx.com/repertory/project.git

    这两种仓库地址使用的认证方式也不一样。对于SSH连接,使用非对称公钥认证方法;对于HTTP连接,使用帐号密码认证方式。

    这些大家都明白了吧,我们使用第一种方式SSH方式,此方式需要秘钥文件的,不了解的朋友,自己百度吧。


第八步, 创建Git项目仓库并初始化


    mkdir /data/repertory

    cd /data/repertory

    git init --bare test.git    

    chown -R git_xxx:git_xxx test.git

上面的脚步很清楚,我在/data/repertory目录下创建了 test.git 的仓库,那么他的访问形式如下:


[email protected]:/data/repertory/test.git

看清楚了,访问的形式就是 git用户@IP地址:仓库目录,简单吧。


第九步,将客户端提交上来的 公钥文件 id_rsa.pub 加入到 /home/git_xxx/.ssh/authorized_keys文件里,一行一个。


	cd /home/git_xxx     // 我把公钥文件上传到了这个目录

	cat ./id_rsa.pub >> ./.ssh/authorized_keys

到这里大家都很清楚了,客户端通过 秘钥文件,就能直接访问代码仓库了,而不是通过账号密码登陆的方式。那么客户端的秘钥文件如何生成呢?

话题转移到客户端,就是程序员开发的PC电脑,以Win7 64位为例,我们需要安装Git客户端:Git-2.11.1-64-bit.exe, 记得去官网下载喽。

安装这个东西后,就会有一个 git-bash.exe 的窗口以供操作,跟Dos黑窗口一样,用于执行git命令的。


    $ git config --global user.name "your name"
    $ git config --global user.email "your [email protected]"
    $ ssh-keygen -t rsa -C "your [email protected]"

上面的前两行大家都清楚,就是配置自己的名称和邮件,跟服务器端是一个道理。

第三行就是生成秘钥文件,中间需要交互(设置秘钥文件密码),一律回车即可(密码为空)。

秘钥文件生成后,它会提示你文件的目录,一般情况下是:C:\Users\PC Name\.ssh目录下。

就是你PC电脑用户下的.ssh目录下,就有 id_rsa.pub, 就是公钥。


下一节,我们将一下如何使用 Android Studio链接咱们创建的远程代码仓库:[email protected]:/data/repertory/test.git













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章