1:首先我們在centos上面自己搭建git服務(wù)器,并初始化裸倉庫
? ? ? ? ? 安裝git劈狐,可以使用yum源在線安裝?
? ? ? ? ? ? ? ? ? ? ? ? # yum install -y git
? ? ? ? ? ? 創(chuàng)建一個git用戶來運(yùn)行g(shù)it服務(wù)?
? ? ? ? ? ? ? ? ? ? ? ? ? # adduser git
? ? ? ? ? ? 并給用戶添加密碼 罐孝,很多博客上面并沒有添加密碼這一項(xiàng),不是的是不是因?yàn)榘姹镜木壒史实蓿?最后遠(yuǎn)程鏈接到倉庫clone的時(shí)候莲兢,需要你輸入密碼,而且必須要有续膳,不能為空改艇,我就是一 直按 照博客上面操作并沒有設(shè)置用戶密碼,走到最后本地clone時(shí)候一直不成功姑宽,也不知道什 么原因遣耍,最后實(shí)在沒辦法就試試設(shè)置用戶密碼,然后clone成功了?
? ? ? ? ? ? ? ? ? ? ? ? ? ? #passwd git
? ? ? ? ? ? 初始化倉庫 ,先創(chuàng)建/home/data/git/目錄放置git倉庫并初始化
? ? ? ? ? ? ? ? ? ? ? ? #mkdir -p /home/data/git
? ? ? ? ? ? ? ? ? ? ? ? #cd /home/data/git
? ? ? ? ? ? ? ? ? ? ? ? # git init --bare project.git
? ? ? ? ? ? 執(zhí)行以上命令 Git命令炮车,會創(chuàng)建一個裸倉庫舵变,會生成branches? config? description? HEAD? hooks? index? info? objects? refs文件和目錄。裸倉庫沒有工作區(qū)瘦穆,因?yàn)榉?wù)器上的Git倉庫純? 粹是為了共享纪隙,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉庫通? ? ? ? ? ? ? ? ? 常都以.git結(jié)尾扛或。然后绵咱,把owner改為git
? ? ? ? ? ? ? ? ? ? #chown -R git:git project.git
2:裸倉庫建立好了,我們現(xiàn)在需要到客戶端來進(jìn)行clone熙兔,客戶端與服務(wù)端進(jìn)行遠(yuǎn)程鏈接需要創(chuàng)建? 客戶端登錄證書悲伶,也就是創(chuàng)建ssh? key文件。這里需要說一下住涉,Linux下面自帶的 有客戶端功 能麸锉, Windows需要下載客戶端(我直接在百度軟件管家里面下載的)。首先在用戶主目錄下舆声,看看有沒有.ssh目錄花沉,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件媳握,如果? 已 經(jīng)有了碱屁,可直接跳到下一步。如果沒有蛾找,打開Shell(Windows下打開客戶端Git Bash)娩脾,創(chuàng) 建SSH? Key(youremail@example.com也就是你自己的郵件地址):
? $ ssh-keygen -t rsa? -C"youremail@example.com"
? ? ? ? ? 然后回車,存放密鑰對的地址使用默認(rèn)值路徑
? ? ? ? ? 查看Linux下面主目錄有一個.ssh隱藏文件(Windows在c盤administrator下面)打毛,進(jìn)去之后里面有? id_rsa和id_rsa.pub兩個文件晦雨,這兩個就是SSH Key的秘鑰對架曹,id_rsa是私鑰,id_rsa.pub 是 公 鑰
? ? ? ? ? Git服務(wù)器打開RSA認(rèn)證 闹瞧,進(jìn)入到 /etc/ssh查看(cat)sshd_config內(nèi)容有? ? ? 1.RSAAuthentication yes? 2.PubkeyAuthentication yes? 3.AuthorizedKeysFile? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? .ssh/authorized_keys绑雄,說明公鑰存放在.ssh/authorized_keys文件中,所以我們在/home/git下創(chuàng) 建.ssh目錄(這里的奥邮。ssh文件和客戶端存放密鑰對文件不是同一個)万牺,然后創(chuàng)建? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? authorized_keys文? 件,并將剛生成的公鑰導(dǎo)入進(jìn)去(客戶端的直接復(fù)制進(jìn)去保存就可以)
? ? ? ? ? ? ? ? ? ? ? # cd /home/git
? ? ? ? ? ? ? ? ? ? ? # mkdir .ssh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #cp -a ~/.ssh/id_rsa.pub /home/git/.ssh/authorized_keys
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #chmod755/home/git/.ssh/authorized_keys
3:客戶端clone倉庫
? ? ? 在自己所需要的目錄下面 (ip 是指鏈接服務(wù)器的IP 洽腺,/home/data/git/project.git倉庫地址)
? ? ? 執(zhí)行? ? ? ? ? git clone git@ip:/home/data/git/project.git
? ? ? 這里兩點(diǎn)需要注意:第一脚粟,當(dāng)你第一次使用Git的clone或者push命令連接倉庫時(shí),會得到一個警? ? ? ? 告蘸朋,這是因?yàn)镚it使用SSH連接核无,而SSH連接在第一次驗(yàn)證Git服務(wù)器的Key時(shí),需要你確認(rèn)Git的Key的指紋信息是否真的來自GitHub的服務(wù)器藕坯,輸入yes回車即可团南,Git會輸出一個警告,告訴你? ? ? ? 已經(jīng)把GitHub的Key添加到本機(jī)的一個信任列表里了
4:執(zhí)行完之后查看執(zhí)行clone命令的目錄中有了一個project文件夾炼彪,到這里就完成了