方格精選

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

閱讀時間約 7 分鐘
搞清楚 Git 與 GitHub 的差別並學會必會操作

什麼是 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 “[email protected]
– 查詢使用者名稱:git config user.name
– 查詢使用者信箱:git config user.email
– 查詢 git 設定內容:git config — list
git 版本控制基本架構(來源
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
  1. 在 master 建立開發用新分支(黃)
  2. 在開發用分支上針對功能再另開分支(桃),完成後合併回開發用分支(黃)
  3. 正式部署前,將程式碼合併在測試分支(綠)上做討論與測試
  4. 將程式碼合併在 master 分支上
  5. 當正式版發生問題,會在修復用分支(紅)上修改程式碼,修復後合併在 master 分支上
GitHub flow
  1. 在 master 建立新分支
  2. 在新分支上開發功能
  3. 申請合併(Pull Request)
  4. 討論與檢視程式碼
  5. 部署測試
  6. 將分支合併到 master


感謝您的閱讀,我試著將生活與自己所學到的知識,以平易近人的方式傳達給正在努力進步的同好,甚至是領域之外卻有興趣的人。如果喜歡我的文章,歡迎贊助我,你的鼓勵也是我進步的動力。
為什麼會看到廣告
37會員
31內容數
短篇奇幻作品將不定期更新。
留言0
查看全部
發表第一個留言支持創作者!
Ray C的沙龍 的其他內容
上面的圖示清楚表示了網站體系架構。如果你不是經驗豐富的網頁開發人員,可能會覺得它很複雜。在我們深入探究每個部分之前,下面的描述應該會讓我們更容易上手。
《魔物獵人 2G》可以說是魔物獵人的經典代數之一,你是否聽到波凱村的背景音樂就如同回到家一般呢?這篇告訴你在 2019 年仍可和朋友順利連線遊玩《魔物獵人 2G》的方法。
❑ 無須預測未來、注意週期就能獲利 巴菲特曾經說過:「長久下來,市場會出現離奇、甚至怪異的現象。一個大錯很可能會磨滅長期累積的成就,因此我們需要本能上即可識別重大風險的人,包括從未遭遇的風險。」塔雷伯的《隨機致富》尤其講述對於不確定性應對的重要。
this 是 JavaScript 的一個關鍵字,也是讓新手困擾許久的主題,今天讓我們用更簡單、直接的方式來了解 this。
為了增進使用者體驗,前端愈來愈複雜,現在就讓我們一起搞懂技術名詞。
你可能已經看過 “ES6” 或 “JavaScript ES6” 一詞,並想知道它實際意味著什麼。別再想了,因為我們將深入研究 ES6 究竟是什麼,以及它與 JavaScript 的關係!
上面的圖示清楚表示了網站體系架構。如果你不是經驗豐富的網頁開發人員,可能會覺得它很複雜。在我們深入探究每個部分之前,下面的描述應該會讓我們更容易上手。
《魔物獵人 2G》可以說是魔物獵人的經典代數之一,你是否聽到波凱村的背景音樂就如同回到家一般呢?這篇告訴你在 2019 年仍可和朋友順利連線遊玩《魔物獵人 2G》的方法。
❑ 無須預測未來、注意週期就能獲利 巴菲特曾經說過:「長久下來,市場會出現離奇、甚至怪異的現象。一個大錯很可能會磨滅長期累積的成就,因此我們需要本能上即可識別重大風險的人,包括從未遭遇的風險。」塔雷伯的《隨機致富》尤其講述對於不確定性應對的重要。
this 是 JavaScript 的一個關鍵字,也是讓新手困擾許久的主題,今天讓我們用更簡單、直接的方式來了解 this。
為了增進使用者體驗,前端愈來愈複雜,現在就讓我們一起搞懂技術名詞。
你可能已經看過 “ES6” 或 “JavaScript ES6” 一詞,並想知道它實際意味著什麼。別再想了,因為我們將深入研究 ES6 究竟是什麼,以及它與 JavaScript 的關係!
你可能也想看
Thumbnail
八十-二十法則提到,在多數生活的現象中,約80%的效果是來自於20%的原因,除了經濟學、學習理論外,這個法則同樣也可以應用在生活中的幸福感上。 我們需要認知到擁有的越多不一定會越快樂,反而有可能會因為無法專注在少數事物上而產生空虛、迷茫的感覺。「極簡」精神最重要的一點在於放下對於「多」的執著,將有
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Windows : 下載Git (git-scm.com)並按照指示安裝。 安裝完成後,你可以通過運行以下命令來確認安裝是否成功: git --version 初次設定GIT 接下來就是按照初次設定git,會需要配置你的用戶名和電子郵件地址,這些信息將被記錄在您提交的每個變更中。 git
1. Outline Takeaway Setting up Git and verifying installation Configuring your Git username and email Initializing a new Git repository Stagin
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
※ 需要做版本備份時: git init:初始化此資料夾,由git 開始追蹤版本控制。 git add:將檔案加入到暫存區。 git commit:把暫存區的內容提交到儲存庫。 git status:查看目前所有檔案的狀態。 git log:查看過去所有commit的記錄。 ※ 需要做修
Thumbnail
這篇文章將會講解 Git 專案上傳 GitHub 的流程。
Thumbnail
一直以來都是靠手動的方式來進行檔案的版本管理,也就是自己複製檔案,然後改檔名,加入可以識別的編號。不過,越來越覺得,有必要用版本控制系統來幫忙,因為手動的方式實在很累人,而且當需要查找以前更動的內容時,非常沒有效率。當發現Spyder也有支援Git時,就想著:「好吧!那就試用看看好了。」
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
前言   這篇文章將會以 SourceTree 作為媒介,講述 Git 中關於伺服器資料儲存狀態的介紹,並介紹如何建立分支與應用。 資料上傳 | Data Commit   版本控制最簡單的介紹,其實就是把專案的資料上傳雲端,然後進行不同版本的分類,當有需要抓回某一個功能進行展演或比對時,可以從這雲
Thumbnail
前言   這篇文章將會介紹伺服器的概覽和倉庫,並介紹兩款客戶端協助使用者。 伺服器 | GitHub   線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體 GitHub 同時提供付費帳戶和免費帳戶,這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。   除了允許個人和組
Thumbnail
八十-二十法則提到,在多數生活的現象中,約80%的效果是來自於20%的原因,除了經濟學、學習理論外,這個法則同樣也可以應用在生活中的幸福感上。 我們需要認知到擁有的越多不一定會越快樂,反而有可能會因為無法專注在少數事物上而產生空虛、迷茫的感覺。「極簡」精神最重要的一點在於放下對於「多」的執著,將有
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Windows : 下載Git (git-scm.com)並按照指示安裝。 安裝完成後,你可以通過運行以下命令來確認安裝是否成功: git --version 初次設定GIT 接下來就是按照初次設定git,會需要配置你的用戶名和電子郵件地址,這些信息將被記錄在您提交的每個變更中。 git
1. Outline Takeaway Setting up Git and verifying installation Configuring your Git username and email Initializing a new Git repository Stagin
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
※ 需要做版本備份時: git init:初始化此資料夾,由git 開始追蹤版本控制。 git add:將檔案加入到暫存區。 git commit:把暫存區的內容提交到儲存庫。 git status:查看目前所有檔案的狀態。 git log:查看過去所有commit的記錄。 ※ 需要做修
Thumbnail
這篇文章將會講解 Git 專案上傳 GitHub 的流程。
Thumbnail
一直以來都是靠手動的方式來進行檔案的版本管理,也就是自己複製檔案,然後改檔名,加入可以識別的編號。不過,越來越覺得,有必要用版本控制系統來幫忙,因為手動的方式實在很累人,而且當需要查找以前更動的內容時,非常沒有效率。當發現Spyder也有支援Git時,就想著:「好吧!那就試用看看好了。」
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
前言   這篇文章將會以 SourceTree 作為媒介,講述 Git 中關於伺服器資料儲存狀態的介紹,並介紹如何建立分支與應用。 資料上傳 | Data Commit   版本控制最簡單的介紹,其實就是把專案的資料上傳雲端,然後進行不同版本的分類,當有需要抓回某一個功能進行展演或比對時,可以從這雲
Thumbnail
前言   這篇文章將會介紹伺服器的概覽和倉庫,並介紹兩款客戶端協助使用者。 伺服器 | GitHub   線上軟體原始碼代管服務平台,使用 Git 作為版本控制軟體 GitHub 同時提供付費帳戶和免費帳戶,這兩種帳戶都可以建立公開或私有的代碼倉庫,但付費使用者擁有更多功能。   除了允許個人和組