20151128 - 第二版
20150409 - 第一版
一、版本控制與 Git 簡介
版本控制系統是當代軟體開發所不可或缺的工具,而 Git 是其中最先進和熱門、且為開放原始碼的分散式版本控制系統(DVCS)。
Git 是由 Linus Torvalds 所發明,一開始的目的是為了管理 Linux Kernel 原始碼,他於2005/4 開始開發,2005/6 開始管理 Linux Kernel,2005/12 就釋出了 1.0 版。
不同於傳統 Delta 儲存方式,記錄每次檔案變更,開分支需要建立副本。Git 使用 DAG (Directed acyclic graph) 的儲存方式,利用有向無環圖來記錄 metadata 建構出 snapshots,相同內容只會有一份記錄。開分支也只是建立參考。
因其分散式、效能好、本地存取、無痛分支的特性,而普遍適合各種開發流程,近年來受到多數人喜愛。
集中式版本控制系統(Centralized Version Control Systems,CVCSs)
分散式版本控制系統(Distributed Version Control Systems, DVCSs)
二、GitHub 簡介
GitHub 是目前全世界最多人採用的 Git 線上管理平台,他包含了完整的 Git 遠端儲存庫實作,還有完整的議題追蹤機制與報表,更有成千上萬的開源碼專案都在 GitHub 進行 Git 版本控管。
三、安裝git
其他作業系統版本參照 : http://git-scm.com/book/zh-tw/v1/開始-安裝Git
四、在網頁端使用Github服務
在Github上新增一個GitHub專案
設置 git 提交 code 時你自己的基本資料,必須指定使用者名稱及電子郵件帳號,因為每次Git提交會使用這些資訊,而且提交後不能再被修改:
通常使用 vim ~/.gitconfig 或 git config --list 查看設定值。
[用心去感覺] 配置檔案優先順序
Git有三種表達檔案的狀態:已提交(committed)、已修改(modified)及已暫存(staged)。
基本Git工作流程大致如下:
實際 Git 命令如下:
- 進入個人首頁 -> 點選綠色New按鈕以建立GitHub專案 -> 設定有初始化版本的 Git儲存庫 [Public, init with README]
五、配置本機端全局參數
git config --global user.name "username" git config --global user.email "username@email.com" git config --global push.default matching // 明確指定 push 的方法 git config --global core.editor "vim" // 將預設編輯器設成vimc
通常使用 vim ~/.gitconfig 或 git config --list 查看設定值。
[用心去感覺] 配置檔案優先順序
- .git/config : 以容器(repo)為影響範圍,可用 --file 參數操作。
- ~/.gitconfig : 以使用者為影響範圍,可用 --global 參數操作。
- /etc/gitconfig : : 全系統影響,可用 --system 參數操作。
六、Git 一般使用的流程
Git有三種表達檔案的狀態:已提交(committed)、已修改(modified)及已暫存(staged)。
基本Git工作流程大致如下:
- 讀者修改工作目錄內的檔案。
- 暫存檔案,將檔案的快照新增到暫存區域。
- 做提交的動作,這會讓存在暫存區域的檔案快照永久地儲存在Git目錄。
通常會開新的branch,所以下面的範例多了 branch 和 merge的步驟。
1. 第一次初始:在 Github 開儲存庫後 clone到本地端
git clone [clone URL] //先把儲存庫的code從Github抓下來
[用心去感覺] 或把要版本控制的資料夾設成git儲存庫(repo)
git init git add -A git commit -m "first commit" git remote add origin https://github.com/your/new/github/repo.git git push -u origin master
2. 進到儲存庫目錄中生成一個branch
git branch [branch-name] //生一個新branch git checkout [branch-name] //切換到此branch上
3. 檔案修改後的整理
git status //看修改了哪些檔案 git add [加入要追蹤的檔案] git rm [取消追蹤檔案] git mv[移動追蹤的檔案] //用add一個檔一個檔自己加,可以Double check自己到底改了哪些檔 git commit git commit -m balabala //註解要寫清楚 完成一個小功能就要commit一次
重複步驟3.直到 git status 顯示沒有想要追蹤的檔案
(偷懶可以用git commit -a,呵呵)
4. merge並上傳code
git checkout master git merge [branch-name] //和master merge起來 git push //接著輸入Github帳號密碼
如果只有一人編輯使用,每次的流程就是跑 2.~ 4.
七、小結
實際使用結果:把過去開發的程式放入git作版本管理,使用起來不錯,版本區隔容易且可以讓自己養成作commit的習慣:)
另外,我主要是看這幾份線上教學文件,寫得非常詳盡實用,大推!
Pro Git
https://git-scm.com/book/zh-tw/v1
Git 版本控制系統
https://ihower.tw/git/
30 天精通 Git 版本控管
https://github.com/dragonkiss81/Learn-Git-in-30-days
References
Pro Git
https://git-scm.com/book/zh-tw/v1
Git 版本控制系統
https://ihower.tw/git/
Git 筆記 - Git初始設定 & Github入門
http://tech.marsw.tw/blog/2013/08/16/git-notes-github
30 天精通 Git 版本控管
https://github.com/dragonkiss81/Learn-Git-in-30-days
https://www.facebook.com/will.fans
沒有留言:
張貼留言