GitHub是任何人都可以访问里面的文件,GitHub的私有仓库则需要花钱购买,有些公司不想花费钱,这时候我们也可以自己搭建一台gitlub服务器,仅公司内同事使用,功能和GitHub并无区别,而且Gitlub是开源的,公有、私有仓库都是免费的。

 

 

 

一、搭建gitlub服务器

 

 

搭建前期准备:安装扩展源epel-release-6-8.noarch

 

 

实验环境:

git服务器ip(192.168.1.253)

git客户端ip(192.168.1.251)

 

1:使用yum在server和client两台机器上,分安装git包

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

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

 

2:安装完成后,在server机器上创建一个git用户,并设置只让当前shell环境登录

[root@server ~]# useradd -s /usr/bin/git-shell git

 

3:创建.ssh目录,在ssh目录下创建一个存放秘钥的文件authorized_keys

[root@server ~]# cd /home/git/

[root@server git]# mkdir .ssh

 

4:在client机器上用命令ssh-keygen,生成的秘钥对,公钥内容拷贝到server机器上authorized_keys里

[root@client gitroot]# cat /root/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA/cl2F7nwz7jDIyvNiwJg1lOfJDvMJew0Iy9N1aOmiXOf9xmQtNI0JZ3MJKpyBaLZPL3vsn0wcrIWjKiEyrg2j6niJbsjpQ/9N0958U02XoOhMiPvJljJqaTUO3ailiLJJNHsDrX6SbKIfLxGts0XYiwABVyJoBM7WHmnxoc8zESt9eNd+C+uVJ7Sg3KUV30nS+dhxKyAzxcBWIQp4CvMEFoIWOFTGBhSePDtLOXsAItJafCGQZ98+LAUTeFfzO+FMXA8XBtHP8uprEqI3q5qb12bzzVftZQPnAJVJVIjButWsa/QXquvHqYIavMe8gK2YQMmBPcF+gPXx4+mk7O4gQ== root@ghs

 

[root@server git]# vim .ssh/authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA/cl2F7nwz7jDIyvNiwJg1lOfJDvMJew0Iy9N1aOmiXOf9xmQtNI0JZ3MJKpyBaLZPL3vsn0wcrIWjKiEyrg2j6niJbsjpQ/9N0958U02XoOhMiPvJljJqaTUO3ailiLJJNHsDrX6SbKIfLxGts0XYiwABVyJoBM7WHmnxoc8zESt9eNd+C+uVJ7Sg3KUV30nS+dhxKyAzxcBWIQp4CvMEFoIWOFTGBhSePDtLOXsAItJafCGQZ98+LAUTeFfzO+FMXA8XBtHP8uprEqI3q5qb12bzzVftZQPnAJVJVIjButWsa/QXquvHqYIavMe8gK2YQMmBPcF+gPXx4+mk7O4gQ== root@ghs

 

5:设置ssh目录属主为git用户,权限700

[root@server git]# chown -R git .ssh

[root@server git]# chmod 700 .ssh/

 

6:在data目录下,创建gitroot仓库目录,并使用命令git init --bare sample.git初始化

[root@server git]# mkdir -p /data/gitroot

[root@server git]# cd /data/gitroot

[root@server gitroot]# git init --bare sample.git

 

 

7:初始化完成后,用ls命令看到当前目录下多了一个sample.git仓库目录

[root@server gitroot]# ls

sample.git

 

 

8:server配置完成后,在client机器上测试,克隆远程仓库到本地

[root@client home]# git clone git@192.168.1.253:/data/gitroot/sample.git

Initialized empty Git repository in /home/sample/.git/

reverse mapping checking getaddrinfo for bogon [192.168.1.253] failed - POSSIBLE BREAK-IN ATTEMPT!

warning: You appear to have cloned an empty repository.

 

克隆完成后,可用ls命令看到当前目录多了个服务端的sample仓库目录

[root@client home]# ls

aaa  gitroot  php-fpm  sample  test

 

 

9:创建测试1.txt文件,提交到server远程仓库上

[root@client home]# cd sample

[root@client sample]# echo "test" > 1.txt

test

 

10: add标记

[root@client sample]# git add 1.txt

 

11: commit 提交本地仓库

[root@client sample]# git commit -m "add new 1.txt"

[master (root-commit) 4e96168] add new 1.txt

 1 files changed, 2 insertions(+), 0 deletions(-)

 create mode 100644 1.txt

 

12:push到远程仓库上就可以了

[root@client sample]# git push -u origin master

Counting objects: 3, done.

Writing objects: 100% (3/3), 227 bytes, done.

Total 3 (delta 0), reused 0 (delta 0)

To git@github.com:guhongshun/aaa.git

 * [new branch]      master -> master

Branch master set up to track remote branch master from origin.

记录每一天有趣的事情!!