第一步:創(chuàng)建一個git用戶,用來運行g(shù)it服務(wù):
adduser git
切換到/home下查看
ls -al //注意一定要查看git目錄的擁有者(必須是git)和所屬用戶組(可以是git或者root)

image.png
如果需要讓此用戶有root權(quán)限,執(zhí)行命令:
root@ubuntu:~# vim /etc/sudoers
修改文件如下:
# User privilege specification
root ALL=(ALL) ALL
git ALL=(ALL) ALL
保存退出,git用戶就擁有了root權(quán)限。
第二步:創(chuàng)建證書登錄
進(jìn)入git目錄下:
cd /home/git
mkdir .ssh
cd .ssh
// 創(chuàng)建文件authorized_keys: 收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導(dǎo)入到/home/git/.ssh/authorized_keys文件里,一行一個。
mkdir authorized_keys
vim authorized_keys
[備注:查看本機 ssh 公鑰,生成公鑰]
a. 打開你的 git bash 窗口
b. 進(jìn)入 .ssh 目錄:cd ~/.ssh
c. 找到 id_rsa.pub 文件:ls
d. 查看公鑰:cat id_rsa.pub 或者 vim id_rsa.pub
如果找不到id_rsa.pub 就去 生成公鑰
1.如果通過上面的方式找不到公鑰,你就需要先生成公鑰了:ssh-keygen
2.接著會確認(rèn)存放公鑰的地址,默認(rèn)就是上面說的路徑,直接enter鍵確認(rèn)
3.接著會要求輸入密碼和確認(rèn)密碼,如果不想設(shè)置密碼直接不輸入內(nèi)容 按enter鍵
生成公鑰命令: ssh-keygen

image.png
第三步:初始化Git倉庫
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令:
git init --bare four.git
Git就會創(chuàng)建一個裸倉庫,裸倉庫沒有工作區(qū),因為服務(wù)器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉庫通常都以.git結(jié)尾。然后,把owner改為git:
chown -R git:git four.git
第四步:禁用shell登錄-測試是否密鑰登錄成功
出于安全考慮,第二步創(chuàng)建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
本地電腦git 測試秘鑰登錄是否成功
ssh git@yourserverip
第四步:克隆遠(yuǎn)程倉庫
現(xiàn)在,可以通過git clone命令克隆遠(yuǎn)程倉庫了,在各自的電腦上運行:
$ git clone git@server:/srv/four.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
第五步:git hook 自動布署代碼
原理和流程
1,git用戶執(zhí)行g(shù)it push操作
2,遠(yuǎn)程倉庫發(fā)現(xiàn)有用戶執(zhí)行了push操作,就會執(zhí)行一個腳本post-receive(鉤子)
3,在post-receive腳本中,將git倉庫的代碼拷貝到web站點目錄下
因為公司的項目也是跑在此臺服務(wù)器上,所以自動部署代碼比較簡單。
進(jìn)入到第三步初始化的git倉庫目錄,/srv/four.git/hooks目錄下,命令行執(zhí)行:
cp post-update.sample post-receive
vim post-receive
添加以下代碼到post-receive文件
unset GIT_DIR
cd /data/wwwroot/four/four
git pull

image.png
然后保存即可;
最后修改post-receive文件權(quán)限:
chown -R git:git post-receive