SVN與Git
許久未上CU了,也許自從用上orgmode和git之後,有了更好的方式組織內容。
但是總是對這裡情有獨鐘。
這裡是我最早發布內容的地方,以後找到更好的方式,希望能陸續也同步至此。
發一篇文章,共學習和參考。
內容
─────────────────
1 原理和概念
.. 1.1 階段1, 文件系統(FS)
.. 1.2 階段2, 集中式版本控制(CVCS)
.. 1.3 階段3, 分布式版本控制(DVCS)
2 subversion與git原理圖
.. 2.1 一個svn服務端,簡單,但是慢
.. 2.2 兩個svn服務端,快,但是復雜
.. 2.3 如何使其簡單、並且快?
.. 2.4 使用 分布式 git 服務端,即簡單又快。
3 理解的關鍵點
.. 3.1 分布式的理解
.. 3.2 工作流程、狀態
.. 3.3 工作空間(work area)、緩存空間(staged area)、庫(repository)
.. 3.4 針對 `git' 的內容
4 git常用操作
.. 4.1 本地相關
.. 4.2 與它人協作相關
.. 4.3 沖突處理相關
.. 4.4 其它
subversion與git簡介
1 原理和概念
════════════
這裡主要講述git。先了解一下從版本控制的角度上,對資料進行管理的發展簡程。
1.1 階段1, 文件系統(FS)
───────────
早期,文件基本上通過操作系統文件系統管理。
資料以目錄路徑的方式存於文件系統中,常見的文件系統如 `fat32', `ext3' 等。
1.2 階段2, 集中式版本控制(CVCS)
───────────────
後來,出現了版本控制的概念,對開發的內容通過集中式版本控制工具進行。
除了文件系統中體現的資料路徑外,還通過中心服務器,用版本號的方式,可對
每次修改的歷史進行管理,
常見的集中版本控制工具如 `vcs', `svn' 。
1.3 階段3, 分布式版本控制(DVCS)
───────────────
再後來,由於集中式版本控制中,有關歷史的全部內容集中在一處服務器中管理,
穩定性,以及速度上,可遷移上都不方便,於是出現了分布式版本控制。
不是用版本號而是用每次提交的內容指紋來管理資料,不僅通過一個中心服務器
進行版本控制,任意遠程、本地都可參與進來,並且它們之間可相互同步其管理
信息。
常見的工具用提交管理,如 `git', `mercurial' 。
2 subversion與git原理圖
═══════════════════════
2.1 一個svn服務端,簡單,但是慢
───────────────
2.2 兩個svn服務端,快,但是復雜
───────────────
2.3 如何使其簡單、並且快?
─────────────
2.4 使用 分布式 git 服務端,即簡單又快。
────────────────────
3 理解的關鍵點
══════════════
下面給出便於理解的關鍵,詳細內容自行查閱。
3.1 分布式的理解
────────
基於 `git' 的分布式版本控制,每個端都是獨立的服務器,通過 `git pull' /
`git push' 相互同步。
3.2 工作流程、狀態
─────────
主要指 `svn & git' 的 `add,commit,status', 各有何不同?
3.3 工作空間(work area)、緩存空間(staged area)、庫(repository)
───────────────────────────────
3.4 針對 `git' 的內容
──────────
`object', `snapshot', `index', `repository'.
`git directory', `git work directory', `fast-forward'.
4 git常用操作
═════════════
下面給出最常用的 `git' 操作子命令,詳細內容自行查閱。使用之時,注意需要
給出 `git' 關鍵字以及參數,例如:
┌────
│ $git commit -m 'one commit tip.'
└────
4.1 本地相關
──────
`branch', `merge', `checkout', `reset', `clean', `log', `commit',
`status', `diff'.
4.2 與它人協作相關
─────────
`pull', `push', `remote', `rebase', `format-patch', `am'.
4.3 沖突處理相關
────────
`mergetool', `merge', `stash'
4.4 其它
────
`config', `clean', `gc', `help'.