前言
在日常開發中我們經常會遇到這樣的需求:在本地開發項目同步到Github上,同時将伺服器上的代碼也做更新。倘若能把
本地-Github-伺服器
這三個平台關聯(如圖),這樣就能極大的提高我們的效率。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90keNRTVq1UNJRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0ITO5QDMycTM2EjMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
那麼大體上的思路就隻分兩步了:
- 将本地項目托管到Github
- 将Github上的代碼同步到遠端伺服器端
本地項目托管到Github
先假設我們再本地的D盤目錄下建立了一個
test
檔案夾,裡面放着我們的項目代碼,接下來我們需要進行如下操作将其托管到Github。
1. 本地下載下傳安裝Git環境
這一步不多做贅述,去Git官網下載下傳Git的安裝包就可以了,安裝完成後打開
Git Bash
應用,輸入指令:
$ ssh-keygen -t rsa -C "yourEmail"
$ Generating public/private rsa key pair.
$ Enter file in which to save the key (/c/Users/esunr/.ssh/id_rsa):
$ Created directory '/c/Users/esunr/.ssh'.
$ Enter passphrase (empty for no passphrase):
$ Enter same passphrase again:
$ git config --global user.name "yourName"
$ git config --global user.email "yourEmal"
yourName
和
yourEmal
分别對應你的Github使用者名和郵箱
2. 添加開發機的SSH Key
SSH Key
即SSH公鑰,隻有我們把某台PC的SSH公鑰添加到Github的設定中,我們的這台PC才能跟我們上傳的項目進行同步和更改。
首先我們打開Git Bash,在指令中輸入
$ cd ~/.ssh
$ ls
如果列出如下目錄:
id_rsa id_rsa.pub known_hosts
說明已存在SSH Key無需再生成,如果不存在則運作
$ ssh-keygen
生成
id_rsa.pub
檔案後,我們使用指令檢視密鑰
$ cat id_rsa.pub
得到的密鑰大概長這樣
我們将
id_ras.pub
檔案中的所有文本都複制下來,打開Github,選擇右上角頭像-Settings-SSH and GPG keys,點選選項面闆中的
New SSH Key
。
将自己的SSH Key添加到選項中即可,之後我們可以運作測試是否連接配接到Github
ssh -T [email protected]
如果出現如下提示,則說名連接配接成功
Hi EsunR! You've successfully authenticated, but GitHub does not provide shell access.
3. 在Github中建立空項目
我們點選右上角的“+”選擇
New repository
建立一個新項目,要注意一點的是:
新項目中除了題目和描述之外,不要點選任何選項,我們要的是一個完全空的項目倉庫
4. 上傳本地項目代碼到Github
我們點選
Create repository
之後,會出現一個提示,如下做講解
// 這一步是跳轉到本地的項目目錄,我們可以替換為cd指令跳轉,cd C:/test
echo "# test" >> README.md
// 初始化項目
git init
// 添加一個README.md檔案(選擇性)
git add README.md
// 托管更改
git add .
// 送出一次初始化更改
git commit -m "first commit"
// 将本地與Github做遠端連接配接
git remote add origin [email protected]:EsunR/test.git
// 送出代碼到主分支
git push -u origin master
之後再重新整理Github頁面就發現代碼送出完成了。
Github代碼同步到伺服器
PS: 将代碼下載下傳到本地同理
1. 伺服器下載下傳安裝Git環境
與上文相同,隻不過是伺服器端就不需要用Git Bash了
2. 添加開發機的SSH Key
與上文相同
4. 同步項目代碼到伺服器(本地)
首先在伺服器或本地建立一個檔案夾,作為項目的存放倉庫,利用cd指令跳轉到該檔案夾下,如:
$ cd /var/www/html
$ mkdir test
$ cd test
初始化該目錄為Git倉庫
$ git init
我們在Github中打開我們的項目,之後選擇
Clone or download
,複制我們項目的SSH位址
将倉庫遠端源連接配接到Github上的該項目
$ git remote add origin [email protected]:EsunR/test.git
PS: 如過手滑資訊填寫錯誤,使用清除指令 $ git remote remove origin
清除源
使用
Pull
指令,從遠端源的主分支更新代碼到伺服器(本地)
$ git pull origin master
完成。