搭建属于你自己的 Git 服务器

        Git 是由 Linux Torvalds 开发 的一个版本控制系统,现如今正在被全世界大量开发者使用。许多公司喜欢使用基于 Git 版本控制的 GitHub 代码托管。 根据报道,GitHub 是现如今全世界最大的代码托管网站 。GitHub 宣称已经有 920 万用户和 2180 万个仓库。许多大型公司现如今也将代码迁移到 GitHub 上。 甚至于谷歌,一家搜索引擎公司,也正将代码迁移到 GitHub 上 。

        运行你自己的 Git 服务器

        GitHub 能提供极佳的服务,但却有一些限制,尤其是你是单人或是一名 coding 爱好者。GitHub 其中之一的限制就是其中免费的服务没有提供代码私有托管业务。 你不得不支付每月 7 美金购买 5 个私有仓库 ,并且想要更多的私有仓库则要交更多的钱。

        万一你想要私有仓库或需要更多权限控制,最好的方法就是在你的服务器上运行 Git。不仅你能够省去一笔钱,你还能够在你的服务器有更多的操作。在大多数情况下,大多数高级 Linux 用户已经拥有自己的服务器,并且在这些服务器上方式 Git 就像“啤酒一样免费”(LCTT 译注:指免费软件)。

        

        虚拟机环境:

            操作系统:CentOS Linux release 7.5.1804 (Core) 

            MySQL  :mysql  Ver 15.1 Distrib 10.2.17-MariaDB

            NGINX  :nginx version: nginx/1.14.0

            PHP      :PHP 7.2.9 (cli) (built: Sep  5 2018 12:19:11) ( NTS )


        在你的服务器上安装 Git:

        特别的,虚拟机即为我们的远程服务器,我们的本地环境即本地服务器。

        1、安装Git及创建用户

        # 安装Git

[root@localhost ~]# yum install git

        # 创建一个git用户组、用户、密码,用来运行git服务

[root@localhost ~]# groupadd git
[root@localhost ~]# adduser git -g git
[root@localhost ~]# passwd git
更改用户 git 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

        冷暖自知一抹茶ck        


        2、初始化Git仓库

        首先我们选定一个目录作为Git仓库,假定是/srv/gitrepo/project.git/,在/srv/gitrepo目录下输入命令:

[root@bogon ~]# cd /srv
[root@bogon srv]# mkdir gitrepo
[root@bogon srv]# chown git:git gitrepo/
[root@bogon srv]# cd gitrepo

# 创建一个空的Git仓库,服务器上的Git仓库通常都以.git结尾
[root@localhost gitrepo]# git init --bare project.git
初始化空的 Git 版本库于 /srv/gitrepo/project.git/

#以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
[root@localhost gitrepo]# chown -R git:git project.git

        3、克隆仓库

        在另一台电脑上,也就是本机,安装git客户端,并且运行下面的命令:

$  git clone git@192.168.216.160:/srv/gitrepo/project.git

        这里会提示你输入密码,输入你刚才为git账户分配的密码就可以了


        4、验证安装

        在本地Client的project目录下,创建一个文件:1.txt,内容随意,然后提交到远端服务器 192.168.216.160

$ cd project/
$ ls -al
total 12
drwxr-xr-x 1 dell 197121 0 九月 14 12:15 ./
drwxr-xr-x 1 dell 197121 0 九月 14 12:15 ../
drwxr-xr-x 1 dell 197121 0 九月 14 12:15 .git/

$ git add *
$ git commit -m "first"
$ git push origin master

        

        校验

        在本地Client的另外一个目录下,克隆一下:看看text.txt文件是否存在,内容是否对;再次修改内容,提交到远程服务器。

dell@D170309 MINGW64 /c
$  git clone git@192.168.216.160:/srv/gitrepo/project.git
Cloning into 'project'...
git@192.168.216.160's password:
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.

dell@D170309 MINGW64 /c
$ cd project/

dell@D170309 MINGW64 /c/project (master)
$ ls
1.txt

#修改down下来的 1.txt文件
dell@D170309 MINGW64 /c/project (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   1.txt

no changes added to commit (use "git add" and/or "git commit -a")


dell@D170309 MINGW64 /c/project (master)
$ git add *

dell@D170309 MINGW64 /c/project (master)
$ git commit -m "second"
[master b5e963e] second
 1 file changed, 1 insertion(+)

dell@D170309 MINGW64 /c/project (master)
$ git push origin master
git@192.168.216.160's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 230 bytes | 115.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 192.168.216.160:/srv/gitrepo/project.git
   ae35b4f..b5e963e  master -> master

dell@D170309 MINGW64 /c/project (master)
$

        

        再次回到之前,第一次clone下来的项目目录。拉取新的代码,然后查看 本地1.txt文件是否更改

dell@D170309 MINGW64 /d/project (master)
$ git pull
git@192.168.216.160's password:
remote: Counting objects: 5, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From 192.168.216.160:/srv/gitrepo/project
   ae35b4f..b5e963e  master     -> origin/master
Updating ae35b4f..b5e963e
Fast-forward
 1.txt | 1 +
 1 file changed, 1 insertion(+)

        

        可以查看到,已成功更改,查看我们的提交日志,可以看到,两次提交记录:

dell@D170309 MINGW64 /d/project (master)
$ git log
commit b5e963e1b7c061e7df94a32f6a1dccf068555d04 (HEAD -> master, origin/master)
Author: cuikai <961900940@qq.com>
Date:   Fri Sep 14 12:18:56 2018 +0800

    second

commit ae35b4fbdfe5df3b0883df8cfe1e488ead43cefa
Author: cuikai <961900940@qq.com>
Date:   Fri Sep 14 12:17:24 2018 +0800

    first

dell@D170309 MINGW64 /d/project (master)
$


冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论