James Fu
http://www.dotblogs.com.tw/JamesFu
 檔案被別⼈ 或⼈ 己覆蓋,甚⼈ 刪除
 想復原前幾天寫的版本
 想知道跟昨天寫的差在哪裡
 是誰改了這段程式碼,為什麼
 新功能做一半,但又有舊的問題要修改
 …….
 變更管理
 進度追蹤
 協同工作
 …
 版本控制不是只有開發人員需要
 版本控制並非協同開發才需要
 版本控制需要專業的訓練
 版本控制需要付出高額的成本
 ……
Repository
Workspace
Network
 悲觀鎖定
◦ CVS、Visual SourceSafe
 樂觀鎖定
◦ Subversion
◦ Team Foundation Server
 分散式管理
◦ Git
中央版本資料庫
Version 1
Version 2
電腦 A
檔案
電腦 B
檔案
lock and checkout
commit
中央版本資料庫
Version 1
Version 2
電腦 A
檔案
電腦 B
檔案
checkout
commit
中央版本資料庫
Version X
Version Y
電腦 A
檔案
電腦 B
檔案
版本資料庫
Version X
版本資料庫
Version X
 Check out
 Check in
 Update
 Add
 Delete
 Trunk
◦ 程式主要的共享開發版本
 Tag
◦ 程式的特別版本;
◦ 常用於釋出版本,或需要特別標定時使用
 Branch
◦ 程式的分支版本
◦ 常用於釋出版本的功能添加、臭蟲修正,或特別為某目
的的開發版。
• Cloud-powered source code
management
• Team collaboration and agile
planning
• Build, Test, Deploy!
Team Foundation Server / Service
Project 2Project 1
3rd Party3rd Party
Local
Repo
Other
Remot
e Git
Repo
James-版本控制
James-版本控制
James-版本控制

James-版本控制