網路開發中的Git:瞭解一個專案的典型工作流程

網路開發中的Git

網路開發與協作有著內在的聯絡。大多數時候,你會和其他開發者一起工作,即使沒有,Git 也能在很多其他方面幫助你。

Git 是控制我們製作的應用程式的版本的軟體。單打獨鬥的開發者、大公司,甚至是世界上最大的開源專案 Linux 都在使用它。

作為一個網路開發者,知道如何正確使用Git進行網路開發是極其重要的。我們不只是在談論 “git add”、”git commit “和 “git push”。你應該知道用Git建立一個web專案的整個工作流程。

  1. 為什麼使用Git?
  2. 網站開發的基本 Git 工作流程
  3. 如何在Kinsta使用Git

為什麼要使用Git?

這些只是開始使用 Git 的部分原因:

  • 組織:與其用v1、v2、v3等資料夾來管理專案,不如用一個專門的資料庫來儲存所有版本的檔案。
  • 協作:Git 可以讓你和其他人同時在同一個專案上工作而不產生衝突。
  • 開源:Git是開源的,但它也是我們用來協作和創造偉大的開源軟體的工具。任何人都可以在GitHubBitbucket等平臺上向開源專案提出拉取請求。
  • 平臺的靈活性:如今,你有許多不同的Git託管服務可以選擇,比如Gitlab、GitHub、Bitbucket和SourceForge。你甚至可以為你的所有專案使用一個自我託管的解決方案。
  • 輕鬆備份:輕鬆地撤銷錯誤,永遠不會丟失你的專案程式碼庫。

我們已經提過一兩次GitHub這個詞了,那麼Git和GitHub之間有什麼區別?

如果你對 Git 完全陌生,可能會感到困惑。簡單地說,Git 和 GitHub 是相關但不同的工具

Git 是我們用來控制檔案變化的版本控制系統(VCS),而 GitHub 是我們用來線上儲存專案檔案及其 Git 歷史的服務(位於專案的 .git/ 資料夾中)。

Git安裝在本地,在你的機器上,如果沒有像GitHub或GitLab這樣的託管服務,就很難與其他開發者進行協作。

GitHub通過增加其他改善協作的功能,如克隆、分叉和合並,為Git增壓。這兩個工具結合在一起,為你帶來了一個相對友好的生態系統,可以開發、管理並向其他人展示你的專案。

專注於開發,而不是託管。給我們的管理應用程式託管一個旋轉。

大的IaaS供應商傾向於將事情過度複雜化。跳過過時的儀表盤、臃腫的產品線和令人困惑的內建功能,你將不會使用。在幾分鐘內部署你的程式碼。另外,你的第一個月可以得到20美元的優惠。

網頁開發的基本 Git 工作流程

在接下來的章節中,你將通過親身實踐瞭解更多關於網頁開發的 Git 工作流程。

安裝要求

如果你還沒有安裝Git,現在是個好時機。它很容易安裝,在大多數作業系統上都可以使用。

官方下載頁面下載,如果你使用的是Linux或macOS,則可以用軟體包管理器安裝它:

Git下載頁面

Git下載頁面

為了測試安裝是否順利,在Linux或macOS上通過在應用程式選單中搜尋 “Terminal “來啟動終端,或者在Windows上開啟Git bash(預設安裝有Git)。

然後輸入:

git --version

Git版本

Git版本

如果你得到一個Git版本作為迴應,你就可以開始了。

我們還需要一個GitHub賬戶,所以請確保註冊或登入GitHub:

GitHub的註冊頁面

GitHub的註冊頁面

一旦你安裝了Git並登入了GitHub賬戶,就可以進入下一節了。

協作專案的基本Git工作流程

如前所述,大部分時間你都不會單獨開發專案。協作是一項關鍵技能,而Git和GitHub可以幫助我們把它變成一個簡單而有效的過程。

一個Git專案的典型工作流程是這樣的:

  1. 通過克隆版本庫或 repo 獲取專案的本地副本。如果你要合作,你應該先分支這個 repo。
  2. 建立一個分支,用你要做的功能的一個代表性名稱。
  3. 編輯該專案。
  4. 在你的本地機器上提交修改。
  5. 推送修改內容到遠端版本庫。
  6. 向原始版本建立一個拉取請求。
  7. 合併和解決原始 repo 的主分支中的衝突。

教程

現在是我們動手的時候了!

在本指南中,你將建立一個簡單的HTML網站。為了實用起見,你將把HTML網站倉庫的基本專案分支到你的GitHub賬戶。所有公共可用的軟體庫都可以這樣做。

Info

分支是一個獨立的版本庫副本,你可以在不影響原專案的情況下管理和修改。另一方面,克隆一個倉庫,只是建立一個檔案的本地副本。

要分支這個HTML網站,請到這個GitHub倉庫,點選位於頁面右上方的Fork按鈕:

GitHub分支

GitHub分支

現在你有一個原始版本的分叉,只在你的GitHub賬戶上可用。在你開始提交修改之前,它是完全一樣的 repo。

正如你所看到的,分叉一個公共的 repo 只需要幾秒鐘。這對開源專案來說是很好的,但請記住,如果你的組織有一個私有的 repo,在嘗試分叉之前,你需要作為一個貢獻者加入。

現在是時候把你的分叉帶到你的本地機器上了。要做到這一點,你需要用 git clone 命令來克隆它,它可以從遠端伺服器上獲取 Git 倉庫:

git clone remote_url

你需要把 remote_url 替換成你的分叉的URL。要獲得GitHub repo的確切URL,請進入其頁面並點選程式碼。然後選擇SSH,並複製它給你的連結:

SSH URL.

SSH URL.

你要執行的克隆分支 repo 的命令是:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git clone git@github.com:yourusername/HTML-site.git
git clone git@github.com:yourusername/HTML-site.git
git clone git@github.com:yourusername/HTML-site.git

當你克隆一個 repo 時,你會得到一個帶有其名稱的資料夾。這個資料夾裡有專案的原始碼(在這裡是指HTML網站)和Git repo,它位於一個名為.git的資料夾裡。

你可以通過在圖形化檔案管理器中開啟新的資料夾,或者在終端用 ls 或 dir 命令直接列出這些檔案,來檢視新目錄中的檔案列表:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Linux/macOS
ls HTML-site/
# Windows
dir HTML-site\
.git images .gitignore index.html LICENSE README.md styles.css
# Linux/macOS ls HTML-site/ # Windows dir HTML-site\ .git images .gitignore index.html LICENSE README.md styles.css
# Linux/macOS
ls HTML-site/
# Windows
dir HTML-site\
.git images .gitignore index.html LICENSE README.md styles.css

這個HTML網站非常簡單。它使用了Bootstrap的實用功能和一些來自Unsplash的圖片,在那裡你可以為你的網站下載免費圖片

如果你在瀏覽器中開啟index.html檔案,你會看到一個有一些圖片的簡單頁面:

我們正在建立的簡單網頁

我們正在建立的簡單網頁。

是時候玩一玩這個專案了。它感覺非常空洞,也許一個帶有網站名稱的標題可以增強使用者體驗。

要做到這一點,進入HTML-site目錄,建立一個名為 header 的分支。在這個新的分支中,我們可以編輯所有的檔案,並儘可能多地實現程式碼,因為這不會影響主(原始)分支。

執行以下命令:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git checkout -b header
git checkout -b header
git checkout -b header

這將建立一個名為 “header “的分支,並在這之後將你切換到它。這相當於:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git branch header
git checkout header
git branch header git checkout header
git branch header
git checkout header

為了確認一切順利,執行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git status
# On branch header
# nothing to commit, working tree clean
git status # On branch header # nothing to commit, working tree clean
git status
# On branch header
# nothing to commit, working tree clean

你會看到你已經從 “主 “分支轉移到 “頭 “分支,但工作樹仍然是乾淨的,因為我們沒有編輯過任何檔案。

在你喜歡的程式碼編輯器中,開啟分支專案中的index.html檔案。這個檔案包括一些指向Bootstrap 5的連結,所以我們可以利用該框架的即用型元件。

index.html檔案的 <body> 標籤內和圖片容器上方新增以下程式碼:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<header>
<nav class="navbar navbar-light bg-light">
<div class="container-fluid">
<span class="navbar-brand mb-0 h1">HTML site</span>
</div>
</nav>
</header>
<header> <nav class="navbar navbar-light bg-light"> <div class="container-fluid"> <span class="navbar-brand mb-0 h1">HTML site</span> </div> </nav> </header>
<header>
<nav class="navbar navbar-light bg-light">
<div class="container-fluid">
<span class="navbar-brand mb-0 h1">HTML site</span>
</div>
</nav>
</header>

新的頁首

我們的網頁上有一個新的頁首。

看起來好多了! 你可以自由地進行其他分支和修改。

一旦你完成了對專案的編輯,就該把所有的修改提交到你的本地版本。在專案目錄中,在終端鍵入以下內容:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git add --all
git commit -m "Added simple header in index.html file"
git add --all git commit -m "Added simple header in index.html file"
git add --all
git commit -m "Added simple header in index.html file"

重要的

所有的Git提交資訊都必須是清晰而有意義的。每當你新增一個提交,你和你的隊友都應該能夠識別該提交中發生了什麼,這樣如果出現了錯誤,你就可以很容易地修復它。

當你剛開始一個專案時,有描述性的提交資訊是很常見的,但隨著時間的推移和重點的轉移,資訊的質量往往會下降。請確保保持良好的命名實踐。

現在你已經向本地版本庫提交了檔案(現在還只能在你的電腦上使用),現在是時候把它推送到遠端版本庫了。

如果你試影象平常一樣推送提交,那是行不通的,因為你現在是在頭層分支上工作。你需要為 header 設定上游分支:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
git push --set-upstream origin header
git push --set-upstream origin header
git push --set-upstream origin header

從2021年8月13日開始,GitHub要求使用SSH認證,所以請確保你的金鑰設定正確。

在這之後,你應該可以在你的分叉倉庫中看到一個名為 header 的新分支(例如:https://github.com/yourusername/HTML-site/branches):

“header” 分支

“header” 分支.

要向原始版本建立一個拉動請求,請點選 “Compare“,在Active branches部分。

這將引導你進入一個拉取請求,你需要選擇你想與哪個分支(原始分支或你的分叉)合併。預設情況下,它顯示的是與基本倉庫合併的選項:

在GitHub上建立拉動請求

在GitHub上建立拉動請求

一旦你點選了拉動請求選項,你就需要對所做的修改寫一個簡短的描述,就像你先前的提交一樣。再一次,儘量簡明扼要,但要描述清楚:

編寫拉動請求資訊

編寫拉動請求資訊

點選Create pull request按鈕,等待基礎倉庫所有者接受或反饋你的修改。

祝賀你 – 你剛剛完成了網頁開發中常見的 Git 工作流程的所有步驟。

這是一個非常基本的例子,但其邏輯可以延伸到各種規模的專案中。請確保你在更大的合作專案中也能嚴格執行這個工作流程。

如何在Kinsta使用Git

如果你是Kinsta的使用者,你已經有兩種方法可以在MyKinsta門戶中使用Git和GitHub。

我們先來看看第一種方法。你可以很容易地通過SSH進入並從任何Git託管服務(如GitHub、Gitlab或Bitbucket)中提取一個Repo。

要做到這一點,進入你的Sites標籤,選擇一個網站,然後進入你的SSH細節部分,並複製SSH終端命令。

SSH細節部分

SSH細節部分

通過SSH登入到你的網站,在你的終端貼上上面的命令,然後進入你的網站的公共資料夾(位於/www/yoursitename/下)。這裡是你所有WordPress檔案的位置,所以你可以拉下一個Git repo,裡面有你一直在工作的定製主題或外掛。

下面是你如何用一個簡單的命令拉下一個Git repo:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ssh yourkinstasite@1.2.3.4 -p PORT "cd /www/my_site/public && git pull https://github.com/user/repo.git"
ssh yourkinstasite@1.2.3.4 -p PORT "cd /www/my_site/public && git pull https://github.com/user/repo.git"
ssh yourkinstasite@1.2.3.4 -p PORT "cd /www/my_site/public && git pull https://github.com/user/repo.git"

重要

SSH應該由高階使用者使用。如果你不熟練操作,不要猶豫,先聯絡Kinsta支援。

現在,引入Kinsta新的GitHub部署功能,你可以從GitHub倉庫部署一個完整的WordPress網站。

你的GitHub倉庫應該包括WordPress核心檔案的副本,當然還有你的網站在wp-content資料夾下的內容。

讓我們快速看一下這個選項。

去你公司的一個網站,建立一個暫存環境。這不會超過兩分鐘的時間。

暫存環境

暫存環境

一旦你進入了你的暫存站點,進入Deployment選項卡,點選Begin setup按鈕。你會看到一個GitHub模版,讓Kinsta與你的GitHub賬戶連線。

GitHub部署標籤

GitHub部署標籤

現在,選擇你要拉動你的網站的 repo。

將Kinsta連線到GitHub

將Kinsta連線到GitHub。

最後,部署你的網站,並通過你的暫存網站URL訪問它。

立即部署按鈕

立即部署按鈕。

這項功能目前還處於Beta階段,但很快每個Kinsta使用者都會有機會使用它。

如果你知道如何很好地使用Git和Kinsta,那麼它們將是一個強大的組合。

小結

如今,Git是網路開發中必須學習的工具,因為大多數時候你都會與他人合作,以建立最好的專案。

在這篇文章中,我們討論了在專案中使用Git的一些重要原因,並向你展示了在Git repo中進行協作的基本工作流程。

評論留言