GitHub, Git 分清楚了嗎?(上)
前言
GitHub 是業界中廣為人知的版本控制網站,它是使用 Rails 建構(一定要提一下XD)。
只要輕輕地使用 git 指令,便能將檔案推上網站,或是從網站上拉下來。
等等,一下 GitHub 一下 git,有什麼差嗎,為什麼會用兩個不同的詞?
就讓我們繼續看下去。
GitHub vs Git
如前言所說,GitHub 是版本控制網站,是一個網站,但 git 是一套工具,兩者大相徑庭,但又不能說完全沾不上邊,不然怎麼會都有個 git 字呢?
git 這套工具有很多簡單好用的指令,讓我們能妥善管理檔案 (git add / git commit),而 GitHub 這個版本控制網站,則是要透過 git 指令,將受管理的檔案們,上傳 (git push) 到 GitHub 上面的 Repositories。
這樣看來,兩者便是彼此獨立的個體,但有著密不可分卻的關係。
GitHub
經由上述說明,感覺 GitHub 只是一個放置檔案的平台而爾,但其實網站本身的功能非常多且強大。
count contributions
只要我們將檔案推上(git push)GitHub,個人首頁下的小小灰色格子就會變成綠色。
該上傳檔案什麼時候被 git commit,那麼,什麼時候的灰色格子變成綠色,所以你在 2022.12.31 23:47 對A檔案 commit,然後在 2023.01.01 00:01 推到 GitHub 上,那變成綠色的格子就會是 2022.12.31 唷,不會跟你一起跨年唷~
至於綠色的深淺,會依照 commit 的數量決定。
Fork
這個功能可以讓我們把其他用戶的 repository 分享到自己的 Repositories 裡。
Sync fork
當我們把別人的 repository 抓過來後,對方在自己的 GitHub 上更新了該 repository,我們可以在自己 GitHub 的該 repository 的 <> Code 頁面,按下 Sync fork,讓自己這邊能同步更新一次對方檔案的進度。
Pull requests
當我們把對方的repository Fork 過來並進行修改時,可以使用 Pull requests,像對方發出請求,請求對方將自己修改的部分,納入對方的 repository。
這個功能常常在團隊開發時會使用到,而且可以設定要有多少人 approve 更動的部分後,才能 pull。
另外,如果多人對同個檔案做了不同的修改,而發送 Pull requests 時,第二個以後的 request,都有可能會因為內容衝突導致無法 pull。
舉例來說:
如果 A, B, C 都對 Wubay 這個 repository 的 index.html 進行修改並送出 Pull requests,C 的 requests 先被接受,其後的 A 跟 B 就有可能會因為內容有衝突導致無法 pull 的狀況。
如此,就要退回 A 跟 B 的 requests,並請他們重寫(可憐)。
Self-Profile
只要新增一個名稱與自己帳號一樣的 repository,並勾選 Add a README file,就能在自己的 Overview 上產生一個大欄位,讓你可以在上面打上一些自我介紹等資訊。
這部分的編輯,因為是 Markdown 文檔,所以可以了解一下 Markdown 的 語法。
小結
本篇介紹了 GitHub 的功能,我想大家應該多少對 GitHub 有點認識了,下一篇會介紹 Git,兩篇讀完後,應該更能理解雙方的差異。