--- titile: Git / GitHub 版本控制就上手 tags: GitHub updated: 2023/12/07 --- 科普 [^Git] --- > - [Git 幼幼班](/pCUxppstSkmjGbqRrJH8mw) > - [Git 指令](/gEqzFDNrSfiHe7wHea5QFg) ### 為什麼我們要用 Git 以及 使用GitHub ? GitHub 優點:協作與分享。 * 分享:GitHub 是世界上最大的代碼存放網站與開源社區, 對新手來說可以從別人的 code 中去學習 coding。 * Git 多人協作:Fork & Pull Request.[^pullrequest] [^pullrequest]:多人協作筆記 -[Pull Request](/0SC2-sMtRQuuX7HdFBuuQA) * Git 版本管理 [^Git指令]:除了可以儲存每一次的版本,還可以精準的知道版本間的差別。 [^Git指令]: Git 指令筆記 - [Git 指令](/pCUxppstSkmjGbqRrJH8mw) ## Git Repository 在 GitHub 上面,我們會建立我們的 Git 項目倉庫 (Git Repository)。 ## 存檔(版本) 可以想像倉庫中有一位叫 **MASTER**:construction_worker: 的管理員在幫我們進行存/讀檔的工作。而每一次的變動都是一個新的版本。 :desktop_computer:**顯示 MASTER 頁面** :::success 版本 1 的 code. 版本 2 的 code. 版本 3 的 code. 版本 4 的 code. ::: **MASTER** :construction_worker: HI~ 版1--版2--版3--版4 ## 分支 (BRANCH) :::info 一次只能招喚一個管理員:construction_worker: 幫我們工作。但是可以一直切換不同的管理員做事。 ::: :desktop_computer:**顯示 MASTER 頁面** :::success 版本 1 的 code. 版本 2 的 code. 版本 3 的 code. 修bug 的 code. 版本 5 的 code. ::: 原本的 MASTER 管理員。 :construction_worker: **MASTER** 版1--版2--版3--修bug--版5 多請了一位叫 FIXBUG 的管理員,並且讀取了 MASTER 管理員的『存3』文件。 :construction_worker: **FIXBUG** 版3--修bug 修個 bug 之後,再把檔案再存回去 MASTER 並且繼續後續的 coding。 MASTER 的『版3』文件不會消失,而 FIXBUG 的『版3』也是獨立的存在。 可以認為只是抓取了其中一個版本作為顯示,分支間的內容是完全獨立的。 ## 合併 只是把其中分支上的存檔,合併到了 MASTER 上,並不會刪除或消失任何一段存檔。 ![image](https://hackmd.io/_uploads/Bkb5m2FH6.png)[^Git] ## GitHub 界面 ### 搜尋 ![image](https://hackmd.io/_uploads/HJxY52Kra.png) * 用戶(或組織名稱)/css(倉庫名稱) * 倉庫簡介 * topic 標籤 * ○ 主要語言 ☆ 收藏 最後更新時間 `3 issues need help` (別人提待解決的問題) ### 主界面 ![image](https://hackmd.io/_uploads/S1B12ntr6.png) **README** 副檔名 md 表示這是一個用 Mark Down 寫成的文件。 倉庫下方都會默認顯示 README 檔案。 ![image](https://hackmd.io/_uploads/HJq9n2tST.png) 這裡可以直接下載這個倉庫的全部資料夾及文件到自己的電腦。 也可以按上面 Watch ,隨時有更新的話會提醒你;或是按 Star 做收藏。 Fork 則是複製整個項目到自己的倉庫。 就算完全不懂 code 也可以將自己的文件上傳做備存或分享。 ![image](https://hackmd.io/_uploads/rJDRJ6YHp.png) 檔案上傳完成後再按 commit changes 就可以完成上傳了。 ![image](https://hackmd.io/_uploads/SJNjlpFrT.png) 也可以寫上一些改版的描述以及這裡就會問你需不需要存成 new branch 。 >**start a pull request** 通知原作者拉回這個請求 Pull Request (PR)[^aboutPR] [^aboutPR]: 為你自己學Git - 關於PR https://gitbook.tw/chapters/github/pull-request [^Git]: 这可能是你看过最通俗易懂的git介绍 https://www.youtube.com/watch?v=N6YQlPuAamw&t=119s