Git
Git 的快照和連結機制
- 每次提交的快照:
- 每當提交一個版本,Git 都會儲存當前專案的完整快照。
- 當檔案有更動時,Git 會儲存新的文件版本,但如果檔案沒有變更,Git 則不會重新儲存該文件,而是創建一個連結,指向上一次已儲存的版本,達到節省空間的效果。
- 磁碟空間佔用:
- 雖然每次更新都是一個完整的快照,但由於 Git 智能地使用了連結,實際上只會儲存發生變更的檔案,未修改的部分則重複利用之前的版本,減少了磁碟空間的消耗。
- 當專案規模較大時,Git 的存儲方式能有效降低因版本控制導致的磁碟空間佔用。
- 版本切換的速度:
- 因為 Git 使用快照形式保存各個版本,每個版本的資料是完整的,當我們切換到特定版本時,Git 只需直接調用該版本的快照,省去計算或重新組合的過程。
- 這讓 Git 在版本切換時的速度非常快,特別適合頻繁切換版本的工作流程。
範例說明
假設我們有一個檔案 project.txt
並進行以下操作:
- 初次提交:
- 我們新增一行內容並提交,Git 會保存
project.txt
的完整快照。
- 我們新增一行內容並提交,Git 會保存
- 後續提交(檔案有修改):
- 若在之後的修改中,對
project.txt
增加內容,Git 會儲存更新後的快照。
- 若在之後的修改中,對
- 後續提交(檔案無修改):
- 若之後提交的版本中,
project.txt
沒有變更,Git 則不會重新儲存該檔案,而是創建一個指向之前版本的連結,節省磁碟空間。
- 若之後提交的版本中,
優缺點總結
- 優點:每個版本是一個完整快照,版本切換快且簡單。
- 缺點:隨著版本數量增多,可能會佔用較多的磁碟空間,雖然 Git 有優化機制來減少重複儲存。