10 分鐘學會用 Git 下載倉庫、開發到提交的常見流程

Jo-Yu Liao
5 min readAug 26, 2019

--

記得在學校剛學寫程式時要做一個小組 project,那時候的開發方式現在回想起來真的蠻令人崩潰 XD:比方說 A、B、C、D 要共同開發一個 project,就讓 A 、B 、C 各自在自己的電腦寫程式,寫得差不多後再將檔案傳給負責統整的 D,D 打開 A、B 或 C 傳來的檔案後跟自己的那份檔案用「肉眼對照」,然後複製到自己的檔案,過程中時常會不知道哪一行要用誰的程式、要來回溝通確認、導致複製錯誤、開發緩慢、難以 debug 的問題。

後來到公司後用了 Git 就可以將上述場景變成:A、B、C、D 其中一個人在 GitHub 上為 project 開一個遠端倉庫,讓大家各自將倉庫 clone 到本地,創建自己的分支進行開發,開發到一個段落再個別提交到遠端倉庫,提 PR (Pull Request )請別人幫忙檢查程式,這時候 GitHub 上面會顯示改動的差異,當檢查的人與開發人員確認完沒問題後就可以點擊合併(merge), GitHub 就會自動將改動的部分合併到主分支 (master),大大省去肉眼查看差異、手動合併程式的麻煩。(看到這裡若不清楚「分支」是什麼請 點我),以下簡單介紹一下 Git 以及開發流程。

Git 簡介

Git 是由 Linux 核心開發人員 Linus Torvalds 於 2005 年開發的分散式版本控制系統(distributed revision control),方便使用者管理版本、合作開發。

分散式:為避免像集中式版本控制系統只存取最新的歷史記錄,導致若線上倉庫當機就會有無法協作的風險,Git 讓用戶備份整個倉庫到本地資料夾,若線上倉庫有問題只要任一開發人員有用 Git 備份倉庫,就可以復原倉庫、挽救程式。也便於開發人員在本地開分支獨立開發,完成後再提交到線上倉庫。

版本控制:Git 透過 .git 的隱藏子目錄(該目錄下為 Git 版本控制倉庫架構必要的檔案),管理檔案更新的歷史記錄,讓開發人員可以切換到指定的分支、指定的歷史本版。

常見的開發流程

  1. 將新建的倉庫或已經存在的遠端倉庫 (Remote Repository) 下載到本地

a. 訪問 github 遠端倉庫的網址,點選 clone or download,複製網址

b. 開啟終端機,clone 剛剛複製的倉庫網址

git clone <url>

c. 進入該資料夾

cd <repository name>

2. 下載下來默認是 master 分支,若不想要直接在 master 分支開發,需要切換到既有分支(branch)或新的分支

切換到既有分支:

git checkout <branch name>

切換到新分支(要加個 -b)

git checkout -b <branch name>

不確定是否切換成功,可以用下面指令查看所有本地分支

git branch

3. 開始寫程式囉~~~~

4. 寫一個段落可以檢查一下更新,刪除不必要的空白等

git diff <file name>

5. 一個檔案寫得差不多,可以將工作目錄(Working Directory)的檔案改動存到暫存區(staging area)

git add <file name>

6. 若這個功能寫得差不多,可以將暫存區的「所有檔案改動」命名並存到儲存庫(Repository),就有一筆改動的歷史紀錄

git commit -m <commit name>

7. 可以用下面的程式碼檢查一下改動的歷史紀錄

git log

8. 確認沒問題,就可以將本地的改動提交到遠端倉庫囉!

git push

若是第一次 push ,要先為本地分支設定要追蹤的指定遠端分支

git push --set-upstream github <branch name>

9. 到 github 上提 PR (Pull Request)

10. 請別人幫忙 review 通過後就可以 merge 到主分支拉!

--

--

No responses yet