公司之前用的是vpn,然后老大說讓我搞一個git。於是,我開始了git的研究之路。。。。
概念:(說實話,看了還是有些不太理解)
git 是一種版本控制系統,是一個命令,是一種工具
gitlib 是用於實現git功能的開發庫
github 是一個基於git實現的在線代碼托管倉庫,包含一個網站界面,向互聯網開放
gitlab 是一個基於git實現的在線代碼倉庫托管軟件,你可以用gitlab自己搭建一個類似於
github一樣的系統,一般用於在企業、學校等內部網絡搭建git私服
剛開始,我直接在阿里雲租了一台最便宜的linux服務器,然后就yum -y install git 。。。於是git就安裝好啦。。然后在客戶端上設置了一些東西之后就ok啦,文件代碼可以上傳和下載啦。。。再后來我想怎么對git進行管理呢? 雖然客戶端能夠看到一個個文件,但是服務端好像看不到文件,只是多出了一些看不懂的文件。。。於是我發現gitlab似乎可以進行管理。。。接下來我就開始了對gitlab的研究之路。。。
第一階段:git服務器的最簡單搭建和客戶端最簡單的使用。
准備:
服務端:阿里雲服務器 centos 7.4
(最好要4G內存的,其他不做要求,因為在后面安裝gitlab過程中,剛開始我用的是阿里雲最便宜的入門級服務器,內存512M,結果安裝過程中總是出現各種奇奇怪怪的錯誤,后來看了官方文檔,說是最好准備4G內存,結果換了以一下子就安裝上了,不可思議。)
客戶端:公司的mac電腦
幫助文檔:http://www.runoob.com/git/git-tutorial.html
https://www.cnblogs.com/ganbo/p/7794281.html
- 步驟一:服務端安裝git
[root@gitlab ~]# uname -a ——》設備信息
Linux gitlab 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@gitlab ~]# yum -y install git ——》安裝
[root@gitlab ~]# git version ——》查看當前版本
git version 1.8.3.1
[root@gitlab ~]# useradd git ——》創建git用戶和密碼
[root@gitlab ~]# passwd git
Changing password for user git.
New password: 123456 ——————》為了試驗的方便,后面所有要用到密碼的地方都設為123456
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@gitlab ~]# su - git ————》注意,除非特別說明,后面的命令都以git用戶執行
[git@gitlab ~]$ ls
[git@gitlab ~]$
[git@gitlab ~]$ mkdir .ssh
[git@gitlab ~]$ touch .ssh/authorized_keys ————》創建公鑰存放位置。也是為了安全性,盡管ssh-copy-id命令可以直接傳遞公鑰,但是客戶端必須得知道git密碼。在這邊直接創建了之后,我們只需要要求客戶端自己生成密鑰,然后將公鑰傳給git管理員,由git管理員添加就行了
[git@gitlab ~]$ chmod 755 .ssh/
[git@gitlab ~]$ chmod 644 .ssh/authorized_keys
********備注提示:網上有人說按照下面的步驟可以增加安全性. ..但我目前不會這么做,因為我是用git用戶去操作的,避免了很多需要額外添加權限的問題。這個大家在百度的時候可以看到很多需要用chown去添加git權限***********
[git@gitlab gitrepo]$ exit ——》先暫時切換回root用戶
logout
[root@gitlab ~]#
[root@gitlab ~]# vim /etc/passwd ————》修改入下圖所示
此時 git 用戶可以正常通過 ssh 使用 git,但無法通過 ssh 登錄系統。也是為了安全性。
****************參照我的文章的小伙伴千萬不要設置上面這個步驟哦,也許等到所有的項目全部都搭建好了,可以進行這個操作*********************
[git@gitlab ~]$ ls
[git@gitlab ~]$ pwd
/home/git
[git@gitlab ~]$ mkdir gitrepo ——》創建或選定一個目錄作為git倉庫的存放目錄
[git@gitlab ~]$ ll
total 4
drwxrwxr-x 2 git git 4096 Apr 27 11:37 gitrepo
[git@gitlab ~]$ cd gitrepo/
[git@gitlab gitrepo]$ git init --bare xiangmu-1.git ————》在選定目錄下創建git空倉庫 xiangmu-1
Initialized empty Git repository in /home/git/gitrepo/xiangmu-1.git/
[git@gitlab gitrepo]$ git init --bare xiangmu-2.git ————》在選定目錄下創建git空倉庫 xiangmu-2
Initialized empty Git repository in /home/git/gitrepo/xiangmu-2.git/
[git@gitlab gitrepo]$ git init --bare xiangmu-3.git ————》在選定目錄下創建git空倉庫 xiangmu-3
Initialized empty Git repository in /home/git/gitrepo/xiangmu-3.git/
[git@gitlab gitrepo]$ ls
xiangmu-1.git xiangmu-2.git xiangmu-3.git
ok服務器設置先告一段落。接下來在客戶端配置了。
步驟二:mac客戶端設置
因為mac有自帶的終端控制設備。windows的小伙伴就自己去解決吧。哈哈。
不知道是因為我之前多次試驗然后沒有清理干凈的緣故,還是mac自帶git命令的緣故。反正我這邊有git命令。
我會介紹兩種操作方法,一個是命令行的下載和上傳。一個是git客戶端工具的上傳和下載。。。。
Git 完整命令手冊地址:http://git-scm.com/docs
PDF 版命令手冊:github-git-cheat-sheet.pdf
先說一說終端控制設備的操作步驟:
先創建ssh密鑰:
命令:ssh-keygen
得到: id_rsa(私鑰) id_rsa.pub(公鑰) 這兩個文件
SHIJUNJIE-MAC:~ shijunjie$ pwd
/Users/shijunjie
SHIJUNJIE-MAC:~ shijunjie$ ls .ssh/
id_rsa id_rsa.pub known_hosts
SHIJUNJIE-MAC:~ shijunjie$
打開公鑰 id_rsa.pub,將里面的內容直接復制到之前在git服務端創建的.ssh/authorized_keys文件內
SHIJUNJIE-MAC:~ shijunjie$ cat ./.ssh/id_rsa.pub
[git@gitlab ~]$ vim ./.ssh/authorized_keys
在本地客戶端創建一個存放git倉庫的目錄,例如:
SHIJUNJIE-MAC:~ shijunjie$ mkdir git
SHIJUNJIE-MAC:~ shijunjie$ cd git/
SHIJUNJIE-MAC:git shijunjie$ pwd
/Users/shijunjie/git
將服務端的倉庫克隆一個到本地git目錄下:
SHIJUNJIE-MAC:git shijunjie$ pwd
/Users/shijunjie/git
SHIJUNJIE-MAC:git shijunjie$ git clone git@47.98.245.86:/home/git/gitrepo/xiangmu-1.git
Cloning into 'xiangmu-1'...
warning: You appear to have cloned an empty repository.
SHIJUNJIE-MAC:git shijunjie$ ls
xiangmu-1
ok,這樣就弄好啦,小伙伴可以愉快的操作了。
Git 完整命令手冊地址:http://git-scm.com/docs
PDF 版命令手冊:github-git-cheat-sheet.pdf
接下來說一說客戶端工具吧
工具下載地址在這里:
https://git-scm.com/download/gui/mac。
工具有好多,小伙伴本可以一個個去嘗試一下。。在這邊本人就慷慨的介紹一下2種工具吧。。。
SourceTree
感覺注冊有點麻煩,不過使用還行。
使用前記得在設置界面設置一下,不然絕對會讓你瘋狂。。。。
賬戶不需要。。。
GitHub Desktop
ok這樣2中工具的克隆倉庫大概就是這樣子了。。。具體更多的操作就需要小伙伴們自己去摸索了,也可以留言給我。。。
第二階段:gitlab 托管(管理)系統的搭建
參考文檔:https://www.cnblogs.com/ganbo/p/7794281.html
在這里我是用清華大學的鏡像站直接安裝的。再次提醒小伙伴,內存一定要夠哦,我沒試過2G行不行的,因為剛開始用的512M的入門級阿里雲服務器,結果不行,后來就直接用4G的了。。
https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/. 鏡像站
搭建步驟:
[git@gitlab ~]$ exit ————》先切換回root用戶
logout
[root@gitlab git]#
[root@gitlab git]# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
[root@gitlab git]# yum makecache
[root@gitlab git]# yum install gitlab-ce
ps:注意這里設置的端口不能被占用,默認是8080端口,如果8080已經使用,請自定義其它端口,並在防火牆設置開放相對應得端口
[root@gitlab git]# gitlab-ctl reconfigure
[root@gitlab git]# gitlab-ctl restart
ok 到這里為止gitlab就搭建好啦。。。下面讓我們登陸上去看看。
只需要輸入你之前在/etc/gitlab/gitlab.rb里設置的地址就能進去了,首次登陸會讓你輸入用戶名和密碼,以及新密碼設置
初始賬戶: root 密碼: 5iveL!fe
由於都是英文,於是我想有沒有漢化的呢? 在qq群:linux學習交流 148412746 里的一位群友給了我一個連接。於是我走上了漢化的不歸路。。。
https://gitlab.com/xhang/gitlab/tree/9-0-stable-zh
根據這個指示我一步步做下去:
[root@gitlab git]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.7.1
我找到了下面這個,確認漢化版本包含了我所使用的這個版本10.7.1:
[root@gitlab ~]# pwd ————》確認當前位置
/root
[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git ——》克隆漢化版本庫
Cloning into 'gitlab'...
remote: Counting objects: 735568, done.
remote: Compressing objects: 100% (152381/152381), done.
remote: Total 735568 (delta 574996), reused 734906 (delta 574378)
Receiving objects: 100% (735568/735568), 294.48 MiB | 2.53 MiB/s, done.
Resolving deltas: 100% (574996/574996), done.
[root@gitlab ~]# ls
gitlab
[root@gitlab ~]# cd gitlab/
[root@gitlab gitlab]# git diff v10.7.1 v10.7.1-zh > ../10.7.1-zh.diff ——》導出漢化包
[root@gitlab gitlab]# cd
[root@gitlab ~]# ls
10.7.1-zh.diff gitlab
[root@gitlab ~]# gitlab-ctl stop
[root@gitlab ~]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.7.1-zh.diff
[root@gitlab ~]# gitlab-ctl reconfigure ——》重新編譯
[root@gitlab ~]# gitlab-ctl restart ——》啟動
ok。這樣就安裝好啦,接下來我們看看效果吧:
哈哈。到這里漢化就全部搞定了,接下來就是研究這玩意如何去操作了。。。。