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.
记录每一天有趣的事情!!