方格精選

Git 與 Github 是什麼?如何使用 Git?

更新 發佈閱讀 7 分鐘

搞清楚 Git 與 GitHub 的差別並學會必會操作

raw-image

什麼是 Git?

Git 是一個軟體,可藉由它產生一個數據庫(repository),並且做到分散式版本控制。由於可在多處放置同一份程式碼、歷史紀錄追蹤與回朔,讓協同開發變得容易。(關於不同版本控制系統的介紹,請參閱 Git 官方教學文件

什麼是 GitHub?

Github 是一個遠端數據庫,其他還有 Bitbucket 和 Gitlab。

優勢比較:

  • GitHub:擁有 GitHub Pages 功能,可擁有私人數據庫,免費方案是 3 人以下
  • Bitbucket:可擁有私人數據庫,免費方案是五人以下團隊
  • GitLab:自架 Git 伺服器,有提供 web 視覺化管理介面,常用於企業內部開發

基本終端機指令

– 前往資料夾:cd <路徑>
– 到目前資料夾上一層:cd ..
– 到目前資料夾最外層:cd ~
– 查看當前位置:pwd
– 查看當前資料夾內檔案:ls(cd + 空白鍵 + tab鍵)
– 創建資料夾(工作目錄):mkdir <demo>
– 新增檔案:touch <index.html>
– 刪除檔案:rm <index.html>
– 複製檔案:cp <index.html>
– 移動檔案:mv <index.html>
– 清除終端機畫面:clear


git 設定

– 查看 git 版本:git — version
– 輸入姓名:git config — global user.name “Ray”
– 輸入個人的 email:git config — global user.email “ray@gmail.com”
– 查詢使用者名稱:git config user.name
– 查詢使用者信箱:git config user.email
– 查詢 git 設定內容:git config — list


raw-image

git 初始化與提交

– 初始化數據庫:git init
– 查看 git 狀態:git status
– 將當前資料夾內檔案加入索引:git add .
– 查看工作目錄與索引內檔案的不同:git diff
– 提交更新:git commit -m “修改內容”


git 切換、還原與查看紀錄

– HEAD 切換到指定版本:git checkout <git log 雜湊碼>
– 將整個目錄復原到最新的 commit 狀態:git reset — hard
– 加入索引的檔案還原到工作目錄:git reset HEAD
– 本地數據庫還原到前兩個版本:git reset HEAD^^
– 本地數據庫還原到前一個版本,並清除工作目錄:git reset HEAD^ — hard
– 本地數據庫還原到指定 commit:git reset <commit 編號> — hard
– 還原合併前狀態:git reset — hard ORIG_HEAD
– 查看 commit 歷史紀錄:git log
– 查看 commit 詳細歷史紀錄:git reflog
– 觀看線圖:git log — oneline -graph


git 設定遠端數據庫與更新

– 查詢所有遠端數據庫名稱:git remote
– 查詢所有遠端數據庫名稱與網址:git remote -v
– 註冊遠端數據庫:git remote add <origin> <遠端數據庫網址>(origin 為預設遠端數據庫名稱)
– 更新遠端數據庫(將本地分支和遠端分支進行合併):git push <origin> <master>(如要在 push 時順便將遠端數據庫設為預設,讓下次要傳到同個遠庫時只需輸入 git push,即輸入 git push -u origin master)
– 下載檔案到本地數據庫(對本地分支没有影響):git clone <網址> / git fetch <網址>(簡單來說,clone 指令通常只會用在一開始,之後的更新使 fetch/pull 指令;fetch 指令並不會將你本地數據庫中的 master branch 更新到最新的狀態,可以把 git fetch 想成是在下載資料,並不會更新任何的檔案。)
– 更新本地數據庫(將遠端分支和本地分支進行合併):git pull(git fetch + git merge <origin> <master>)


git 分支與合併

– 查看分支:git branch
– 建立分支:git branch <分支名稱>
– 在特定 commit 上加分支:git branch <新分支名稱> <commit 編號>
– 刪除指定分支:git branch -d <分支名稱>
– 切換到指定分支最新版本:git checkout <分支名稱>
– 將指定分支合併到目前分支後:git merge <分支名稱>
– 合併後成為一個新 commit(master 在開啟分支並在分支上提交 commit 後,master 都沒有更動時的合併):git merge <分支名稱> — no-ff
– 合併衝突(Merge Conflicts):合併時,若檔案裡的某一行都被參與合併方修改,將發生合併衝突,檔案會停留在工作目錄上,解決衝突後就能提交(多人協作時,需要先 pull,解決衝突後再 push)


常見合作開發流程

Git flow

raw-image
  1. 在 master 建立開發用新分支(黃)
  2. 在開發用分支上針對功能再另開分支(桃),完成後合併回開發用分支(黃)
  3. 正式部署前,將程式碼合併在測試分支(綠)上做討論與測試
  4. 將程式碼合併在 master 分支上
  5. 當正式版發生問題,會在修復用分支(紅)上修改程式碼,修復後合併在 master 分支上

GitHub flow

raw-image
  1. 在 master 建立新分支
  2. 在新分支上開發功能
  3. 申請合併(Pull Request)
  4. 討論與檢視程式碼
  5. 部署測試
  6. 將分支合併到 master

參考資料:
Git 官方教學文件
Git 個人常用指令筆記
Learn Git | Codecademy
Git and GitHub — CS50 Beyond 2019


感謝您的閱讀,我試著將生活與自己所學到的知識,以平易近人的方式傳達給正在努力進步的同好,甚至是領域之外卻有興趣的人。如果喜歡我的文章,歡迎贊助我,你的鼓勵也是我進步的動力。

留言
avatar-img
Ray C的沙龍
37會員
31內容數
短篇奇幻作品將不定期更新。
Ray C的沙龍的其他內容
2023/01/14
在 Instagram 看到有人分享在日本操作機器、製作寶可夢客製化衣服的貼文,聯想起先前在網上閱讀到關於 Pokémon API 的文章,一時興起也使用 PokeAPI 仿刻貼文中機器的操作介面。然而在開發過程中,發現連續抓取 905 份寶可夢資料...
Thumbnail
2023/01/14
在 Instagram 看到有人分享在日本操作機器、製作寶可夢客製化衣服的貼文,聯想起先前在網上閱讀到關於 Pokémon API 的文章,一時興起也使用 PokeAPI 仿刻貼文中機器的操作介面。然而在開發過程中,發現連續抓取 905 份寶可夢資料...
Thumbnail
2022/04/03
去年看到 Astro 剛發布時所宣稱的「用較少的 JavaScript 打造極速網站」就對這樣的框架產生興趣,那時雖然也試玩了一下,不過因為遇到一些開發初期的 bug 放棄研究。直到近期拿過去使用 petite-vue 開發的專案 — HTML Reserved Colors 來透過 Astr...
Thumbnail
2022/04/03
去年看到 Astro 剛發布時所宣稱的「用較少的 JavaScript 打造極速網站」就對這樣的框架產生興趣,那時雖然也試玩了一下,不過因為遇到一些開發初期的 bug 放棄研究。直到近期拿過去使用 petite-vue 開發的專案 — HTML Reserved Colors 來透過 Astr...
Thumbnail
2022/03/25
2021 年可以說是 NFT 大爆發的一年了,除了名人相繼創立自己的 NFT,也有各式各樣的商業模式和額外賦能不停的被開發出來;像是主打邊玩邊賺的 (Play-to-Earn,P2E) GameFi 項目「Axie Infinity」、擁有即可兌換一天一碗且連續七天雞肉飯的「元宇宙第一雞肉飯」...
Thumbnail
2022/03/25
2021 年可以說是 NFT 大爆發的一年了,除了名人相繼創立自己的 NFT,也有各式各樣的商業模式和額外賦能不停的被開發出來;像是主打邊玩邊賺的 (Play-to-Earn,P2E) GameFi 項目「Axie Infinity」、擁有即可兌換一天一碗且連續七天雞肉飯的「元宇宙第一雞肉飯」...
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
有關 git add, git commit, git push
Thumbnail
有關 git add, git commit, git push
Thumbnail
還在苦惱怎麼樣把你的檔案上傳到Github嗎?這裡教大家簡單上傳你的檔案可以沿用到如何上傳整體專案到Github並展示你的作品集
Thumbnail
還在苦惱怎麼樣把你的檔案上傳到Github嗎?這裡教大家簡單上傳你的檔案可以沿用到如何上傳整體專案到Github並展示你的作品集
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
Thumbnail
不知道你是否有以下困擾呢? 「自己寫好的程式,若要呈現在網路上,該怎麼辦?」 「手上有個html的檔案,但是要如何分享給朋友們?」 「做一個網站要花主機的錢,如何有個免費託管主機的地方呢?」 以上問題,將由github pages來幫你解決喔!
Thumbnail
不知道你是否有以下困擾呢? 「自己寫好的程式,若要呈現在網路上,該怎麼辦?」 「手上有個html的檔案,但是要如何分享給朋友們?」 「做一個網站要花主機的錢,如何有個免費託管主機的地方呢?」 以上問題,將由github pages來幫你解決喔!
Thumbnail
前言   這篇文章將會介紹伺服器的概覽和倉庫,並介紹兩款客戶端協助使用者。 伺服器 | GitHub   線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體 GitHub 同時提供付費帳戶和免費帳戶,這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。   除了允許個人和組
Thumbnail
前言   這篇文章將會介紹伺服器的概覽和倉庫,並介紹兩款客戶端協助使用者。 伺服器 | GitHub   線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體 GitHub 同時提供付費帳戶和免費帳戶,這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。   除了允許個人和組
Thumbnail
前言   這篇文章將會介紹版本控制,並介紹相關的伺服器和客戶端,藉由比較易懂的方式介紹,可能會跟實際上有些微的落差,但會比較好理解。 版本控制   版本控制基本上是由一個名為 Git 的軟體所建立,隨著時間推進,延伸出了很多伺服器和可視話的客戶端,接下來我會一個一個介紹。 底層 | Git 客戶端
Thumbnail
前言   這篇文章將會介紹版本控制,並介紹相關的伺服器和客戶端,藉由比較易懂的方式介紹,可能會跟實際上有些微的落差,但會比較好理解。 版本控制   版本控制基本上是由一個名為 Git 的軟體所建立,隨著時間推進,延伸出了很多伺服器和可視話的客戶端,接下來我會一個一個介紹。 底層 | Git 客戶端
Thumbnail
操作筆記、安裝git、下載github專案
Thumbnail
操作筆記、安裝git、下載github專案
Thumbnail
Git 是一種版本控制軟體,它的運作模式跟 Google 文件、Dropbox 文件相似,能夠允許多位使用者同時編輯、檢視或回溯文件,並且詳實地記錄了修改的歷史紀錄。我們可以將 Git 比喻為一種更為嚴謹的協作文件。
Thumbnail
Git 是一種版本控制軟體,它的運作模式跟 Google 文件、Dropbox 文件相似,能夠允許多位使用者同時編輯、檢視或回溯文件,並且詳實地記錄了修改的歷史紀錄。我們可以將 Git 比喻為一種更為嚴謹的協作文件。
Thumbnail
搞清楚 Git 與 GitHub 的差別並學會必會操作 什麼是 Git? Git 是一個軟體,可藉由它產生一個數據庫(repository),並且做到分散式版本控制。由於可在多處放置同一份程式碼、歷史紀錄追蹤與回朔,讓協同開發變得容易。(關於不同版本控制系統的介紹,請參閱 Git 官方教學文件)
Thumbnail
搞清楚 Git 與 GitHub 的差別並學會必會操作 什麼是 Git? Git 是一個軟體,可藉由它產生一個數據庫(repository),並且做到分散式版本控制。由於可在多處放置同一份程式碼、歷史紀錄追蹤與回朔,讓協同開發變得容易。(關於不同版本控制系統的介紹,請參閱 Git 官方教學文件)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News