Version Control System
軟體開發的基本⼯工具
•版本控制系統不祇可以幫助妳追蹤修訂
⼿手上的⼯工作進度,讓妳在千鈞⼀一髮之際
還能拾回過往⾟辛苦的結晶,甚⾄至能夠讓
妳跟其他⼈人協同⼯工作、合作無間。
http://jedi.org/blog/archives/004784.html
• 那些台灣軟體產業所缺少的 – 版本控制
系統
http://blog.ez2learn.com/2011/10/20/taiwan-software-lacking-of-vcs/
Integrity
• SHA1 是內容的checksum
• 如果檔案內容有損毀,就會發現跟SHA1不
同。如果 tree 被偷改檔名,也會被發現。
• HEAD 指向的 SHA1,就是整個 repository
的 checksum
• 這在分散式系統⾮非常重要:資料從⼀一個開
發者傳到另⼀一個開發者時,確保資料沒有
被修改。
68.
Distributed
• Local development
•集中式的VCS 系統,沒網路就不能開發,無法
commit,無法看 history log。
• 分散式 CSV 系統即使沒網路,照常可以 commit
和看 history log。
• 不⽤用擔⼼心備份,每個⼈人都有⼀一份完整的
• 開源專案:誰有權限 commit? 沒關係,你可以 fork
• ⽀支援多種⼯工作流程 Workflow
69.
"I will, infact, claim that the difference between a bad
programmer and a good one is whether he considers
his code or his data structures more important. Bad
programmers worry about the code. Good
programmers worry about data structures and their
relationships."
- Linus Torvalds
70.
參考資料
• http://ihower.tw/blog/category/git
• http://pragprog.com/screencasts/v-jwsceasy/source-control-made-easy
•http://www.youtube.com/watch?v=4XpnKHJAok8 Linux 的演講
• http://www.softdevtube.com/2013/02/05/advanced-git/
• http://git-scm.com/book
• Git from the bottom up
http://ftp.newartisans.com/pub/git.from.bottom.up.pdf
• Version Control with Git, O'Reilly
• http://nfarina.com/post/9868516270/git-is-simpler
• http://think-like-a-git.net/sections/graph-theory.html