
什麼是版本控制? 來源
簡言之,就是將一個檔案所有歷史紀錄的版本都保存起來,以便日後參考。
但這種管理方式會碰到哪些問題?
- 檔案一多、時間久了之後不易管理
- 多人協作易發生衝突,無法快速分辨檔案差異
那麼,該如何做版本控制呢?
- 需要新版本時: 開一個新資料夾,用來完整保存當時檔案狀態。
- 不想加入版本控制: 就不需加入資料夾,例如有些不會更動的檔案(電腦設定檔、log 檔),或者不需做版控的檔案(例如帳密等有安全性考量)。
- 避免版本號衝突: 會以亂數,也就是絕不會重複的流水號作為資料夾名稱。
- 知道最新版本: 開一個檔案(new)來存最新的版本號。
- 保存歷史紀錄: 開一個檔案(order)整理流水號。
以下為開始使用 git 的流程:
git init
⬆初始化當前位置,讓 Git 對這個目錄進行版本控制
.gitignore
⬆建立忽略不需版本控制的檔案
git add .
⬆把所有檔案加入版本控制(把東西放到一個暫存資料夾 temp )
git commit -am “message”
⬆新建一個版本(把 temp 資料夾改名為”版本號”)
若有新檔案,需重複步驟 3. 把所有檔案加進版本控制,才能執行 commit
在 commit 之前,可用 git diff 查看與上一版的差
git checkout <版本號>
⬆可以切換各個版本(去到某個資料夾底下)
git checkout master
⬆可以切換各個版本(去到某個資料夾底下)
git checkout master
⬆回到最新版本
操作 branch 基本指令
使用 Git 進行版本控制時,系統最初會自動建立第一個 branch ,也就是 master
git branch -v:查看目前在哪個分支
git branch <branch name> :新增分支
git branch -d <branch name> :刪除分支
git branch checkout <branch name> :切換分支
合併分支
git merge <branch name> :合併分支
Git vs GitHub
Git 是用來版本控制的程式。
GitHub 是目前全球最大的 Git Server,有許多開放原始碼的專案都是使用 Github 進行程式碼的管理。可以想成「提供存放使用 Git 專案倉庫(Repository) 的服務」。也可以不用 GitHub 選擇其他服務,或是自己架一個 Git Sever。
GitHub:視覺化的 repository
透過 GitHub 的 GUI 介面能夠視覺化 repository,如此就可以在 repository 頁面查看該專案的 Commit 紀錄、檔案修改的歷史紀錄、修改者是誰等資訊,也可在 GitHub 執行 pull request 來進行合併。
建立新專案
//啟始git
git init
//一般第一個分支取main
git commit -m "your branch name"
//設定上傳遠端
git remote add origin https://github.com/username/repo-name
//把資料傳上去 main 分支
git push -u origin main