--- title: Git 版控教學 tags: 資源, Git, 版控 --- # Git Course # 0.1 The first step - for Windows 1. 下載 [Git](https://git-scm.com) 2. 下載 [Fork](https://git-fork.com/windows ) 3. 按下鍵盤上的 windows key ![](https://i.imgur.com/0yhwNHZ.png? =150x) 4. 輸入 git bash # 0.2 The first step - for Mac 1. 下載 [Fork](https://git-fork.com/home) 2. 執行電腦的 terminal # 1. local (本地端) ## 1.1 terminal(Mac)/git bash(windows) command (終端機指令) :::info [XXXXXName] 的意思為 你想要創建的資料夾名稱,且需要注意:名稱盡量為英文 ::: - `ls`:列出當前目錄 (資料夾) 的 檔案/資料夾 - `ls -la`: 列出當前目錄 (資料夾) 的 檔案/資料夾 - `cd [path]`: 切換資料夾 - `cd ..`: 返回上一個資料夾 - 可以在桌面將資料夾拖移至終端機 - `mkdir [folderName]` : 建立資料夾 - `touch [fileName]` : 建立檔案 ## 1.2 git 指令 - `git init`: 讓資料夾進行版本控制,(相當於建立 git 的 repository 的意思) - `git status`: 列出當前 git 的狀態 - `git revert`: 回到上一個 commit (版本) 的狀態,並保留當前的 commit (版本) 的紀錄 - `git branch [branchName]`: 創建一個名為 [branchName] 的分支 - ![](https://i.imgur.com/ryyqvSa.png =400x) - `git checkout [branchName]`: 切換到名為 [branchName] 的分支 - `git merge [branchName1]`: 將 [branchName1] 的 commit (版本) 合併到 [bramchName2] ## 1.3 git 流程介紹 ![](https://i.imgur.com/YdljEg0.png? =400x) 1. working directory (工作區): - 檔案或資料夾尚未被 Git 追蹤 - 可以使用 `git add [fileName/folderName]`,讓 Git 追蹤其檔案/資料夾 2. staging area (暫存區): - 檔案或資料夾已經被 Git 追蹤,即 Git 正在監控檔案是否修改 - 此時可以使用 `git commit -m "YourDescription"`,即將目前 staging area (暫存區) 的打包成一個版本 - PS: -m 為 message 的縮寫,即 用一句話說明此版本 的意思 3. localrepo (儲存區): - 儲存一個個版本 :::danger 簡單的版控流程: 1. 使用 `git add [fileName/folderName]` 2. 使用 `git commit -m "YourDescription"` ::: # 2. remote (遠端) ## 2.1 GitHub - [GitHub](https://github.com) :::info GitHub 是一個儲存著許多開源的原始碼的網站 ::: ## 2.2 使用 GitHub 1. Sign Up (註冊) GitHub 2. 進入到首頁 ![](https://i.imgur.com/VorHJ67.png? =300x) 3. 創建新的專案 ![](https://i.imgur.com/khhsIQA.png) 4. 進入到專案的設定頁面 ![](https://i.imgur.com/VdayL6r.png) - Repository name: 專案的名稱 - Description: 此專案的描述,可以不用填寫 - Public/Private: 此專案為 公開/不公開 (不公開需要另外付費,若學生版則免費) - Initaliza this repository with a README: 是否增加專案的說明文件 - Add .gitignore: 增加忽略的檔名,上面的範例是忽略所有 C (一個程式語言) 的檔案 - Add a license: 增加授權條款, - repo: repository (儲存庫) 的簡稱,可以理解成專案的名稱