方格精選

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
留言分享你的想法!
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
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 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