Server:
第一步:配置git
1.1 從yum上安裝git
yum –y install git
1.2 查看git版本:安裝完成後,在服務器端輸入
git --version
1.3 創建用戶:在服務器中創建一個git專屬用戶
//以下爲CentOS下的用戶,賬戶密碼自定義
useradd git
passwd git
1.4 禁止該git用戶使用shell登錄系統(爲了安全性,一般都禁止)
vi /etc/passwd
按i進入編輯模式,在最後一行將git用戶修改成以下配置
git:x:1000:1000::/home/git:/usr/bin/git-shell
第二步:配置遠程倉庫
2.1 創建一個空倉庫
我們選擇在路徑:cd /home/ 下先創建一個用戶目錄,在用戶目錄下創建一個git倉庫
cd /home
mkdir git
cd git
git init --bare LearnProject.git
到這裏,空倉庫已經創建成功 ,倉庫的路徑爲:/home/git/LearnProject.git
2.2 爲剛剛創建的用戶git賦予權限
輸入以下命令,爲git用戶賦予權限
//chown -R 用戶名:組名 文件
chown -R git:git LearnProject.git
第三步:打開 RSA 認證
進入/etc/ssh目錄,編輯 sshd_config
cd /etc/ssh
vi ssh_config
按i進入插入模式,打開以下三個配置的註釋(帶#爲註釋), 按ESC退出插入模式,按:wq保存
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存完成後,重啓sshd服務
/etc/rc.d/init.d/sshd restart
如果運行上述命令出現錯誤可換下面這個:
service sshd restart
至此,服務器端git配置完成;
Client:
第一步:配置git
1.1 安裝git
在Linux上參考服務器端安裝git,在Windows下教程很多,安裝也傻瓜式,這裏不再贅述
1.2 打開git bash創建git使用者
git config --global user.name "test"
git config --global user.email "[email protected]"
1.3 創建與服務器通訊的密鑰
在git bash中,輸入以下命令,爲自己的郵箱創建一個密鑰
ssh-keygen -t rsa -C "[email protected]"
一路enter下去,如果原來有祕鑰則覆蓋即可
這時候,系統已經爲我們創建了一個公鑰和密鑰,id_rsa是密鑰,不能告訴任何人,id_rsa.pub是公鑰,可以公開;
1.4 將本地的公鑰添加到服務器上
1.4.1 通過客戶端命令行將本地公鑰添加進遠程服務器中
在gitbash下,輸入以下命令(ip地址換成你git服務器的地址)
ssh [email protected] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
1.4.2 手動將公鑰添加到服務器中
在1.3中,我們創建了一個公鑰,以Windows系統爲例子,我們先找到這個文件。這個文件的路徑在:
C:\Users\Administrator\.ssh\id_rsa.pub
用記事本的方式打開,我們會得到一串這樣的東西
將以上Ctrl+A全選然後複製。
在服務器端,我們用vi編輯器訪問authorized_keys,將以上信息粘貼進其中
vi /home/git/.ssh/authorized_keys
然後:wq保存。
通過以上1.4.1和1.4.2兩種方法,我們就將本地的公鑰添加進服務器中了。如果發現該目錄下沒有.ssh文件,我們可以手動創建一個,並添加一個authorized_keys
第二步:克隆遠程倉庫
將遠程空倉庫克隆到本地
2.1 創建本地文件夾
假設我們在D:/gitRepo/gitTest下創建一個用於本地的git倉庫文件夾
cd D:
mkdir gitRepo
cd gitRepo
mkdir gitTest
2.2 克隆遠程倉庫
//端口在22的情況下
git clone [email protected]:/home/git/LearnProject.git
//端口在非22的情況下(如5000)
git clone ssh://[email protected]:5000/home/git/LearnProject.git
這時候,bash會提示你克隆的倉庫是空的
至此,我們就完成了遠程倉庫的克隆。
第三步:push/pull項目
做完以上服務器端/客戶端各兩步的內容,你的本地git已經可以和git服務器進行通信了,此時我們可以進行常規的項目push和pull了。
3.1 爲倉庫添加內容
這裏我們隨便把自己的一個項目丟進去(或者隨意創建一個文件亦可,空文件夾git不會識別)
3.2 提交修改
進入LearnProject然後運行以下命令
git add .
git commit -m 初始化項目
這時候,我們就爲本地創建了一次commit
3.3 push本地修改
運行以下命令
// origin 是遠程倉庫的別名,可以通過 git remote -v 查看
//master 是默認主分支
git push origin master
見到以上內容,便說明push成功。
3.3 git服務器遠程倉庫查看commit
進入到服務器遠程倉庫的目錄
見到以上內容,便說明push成功。
3.3 git服務器遠程倉庫查看commit
進入到服務器遠程倉庫的目錄
cd /home/git/LearnProject.git
git log
push 已成功!