服務端:centos7
客戶端:win10
注意:
- 本文主要提供一個完整的流程參考,對於一些細節或者基礎的部分需要讀者查閱其他文章,以免讓閱讀者迷惑,本文會做出適當提醒
- 本文客戶端只講解git bash相關的操作
一、服務端配置
1.安裝git
-
a.先查看自己是否安裝git或者其版本,如果安裝了且版本較低(最新版>=2.x)則卸載(yum remove git),沒安裝則繼續本節
git --version #查看git版本,沒裝則command not found
-
b.安裝依賴的庫
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install gcc perl-ExtUtils-MakeMaker
-
c.通過github源碼下載git(保障獲得最新版本,缺點:編譯時間長)
cd /usr/local/git/ #創建git文件夾在/usr/local/中 wget https://github.com/git/git/archive/v2.21.0.tar.gz # 獲得git的2.21.0版本 tar -xzvf v2.21.0.tar.gz #解壓下載好的安裝包到當前目錄
-
d.接着編譯安裝git
cd git-2.21.0 #打開解壓后的目錄 make prefix=/usr/local/git all make prefix=/usr/local/git install
-
e.完成后還需要添加環境變量,使得git命令有效
vim /etc/profile #如果沒有vim,則安裝vim工具 yum install vim #打開后在最后一行添加這一條:export PATH="/usr/local/git/bin:$PATH" #保存退出后執行下一條命令 source /etc/profile #使得配置立即生效
-
f.還記得第一條命令嗎,再試試
git --version
2.創建用戶
注意:服務端的用戶和客戶端的用戶不是一個意思,服務端的用戶是用於建立和管理服務端倉庫用的,客戶端創建的用戶是為了方便來記錄是哪些人提交的修改或者簽名用
此處的作用是創建用戶並創建用於存放客戶端公鑰的文件,注意必須進入到Tom的目錄下
adduser tom #創建一個名為tom的用戶
chown -R tom:git
# su - tom #設置tom為管理員
mkdir .ssh #開始為Tom創建.ssh證書和設置權限
chmod 700 .ssh #賦予權限
touch .ssh/authorized_keys #修改文件時間屬性,不用管
chmod 644 .ssh/authorized_keys #設置權限,這個權限必須是屬於tom的,不然無效
vim .ssh/authorized_keys #加入客戶端用戶公鑰,一行加一個
# 把公鑰保存在authorized_keys文件中, # 如何生成公鑰:請跳轉到本文第二節<客戶端配置中>的<配置本地用戶>來獲取公鑰
在文件/etc/ssh/sshd_config中添加下列三行內容:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
3.創建服務端存儲代碼的倉庫
cd /data/git //切換到希望創建工作區的目錄
git init --bare sample.git #創建一個空的Git倉庫sample.git,此時Git會創建一個唯一分支master
chown -R tom sample.git #將sample.git的所有權從root修改到新創建的tom
二、客戶端配置
1.配置本地用戶
-
a.首先配置(創建)用戶:
git config --global user.name "Username" git config --global user.email "郵箱"
-
b.然后生成用戶公鑰
ssh-keygen -t rsa -C "郵箱" #填寫你剛才配置用戶填的郵箱,則會生成公鑰
- 完成后,C:\Users\用戶名.ssh 下會多出兩個文件 id_rsa 和 id_rsa.pub
- id_rsa 是私鑰,id_rsa.pub 是公鑰
-
c.復制公鑰內容(不要用win10自帶筆記本軟件打開,復制的公鑰會有問題)
將id_rsa.pub中的內容復制粘貼到服務端中我們在tom用戶中創建的/.ssh/authorized_keys中
完成這步驟后,其實這時候我們就已經可以從遠程服務器中進行Git相關操作了
-
d.測試公鑰是否放置好
2.克隆遠程倉庫
git clone tom@127.0.0.1:/data/git/sample.git #127.0.0.1改成你服務器的地址,tom是服務器上git用戶
3.創建本地倉庫
#首先打開到你要版本控制的目錄路徑下
git init #將該目錄初始化為一個git倉庫
4.推送本地倉庫到遠程服務器
git add . # 它會把工作時的所有變化提交到暫存區
git commit -m 'first commit' #提交並加入提交信息
git remote add origin tom@222.211.72.79:/www/ue4/sample.git #設置遠程服務器地址,一次即可
git push origin master #把文件提交到遠程服務器上