1、何謂版本控制 它是一種軟件工程籍以在開發的過程當中,確保由不一樣人所編輯的同一檔案都獲得更新,它透過文檔控制記錄程序各個模塊的改動,併爲每次改動編上序號,而且編輯錯誤以後還能夠回溯到之前的版本java
2、爲什麼要使用版本控制系統 git
一、備份源代碼 github
二、能夠方便進行代碼版本的回溯 算法
三、能夠記錄是誰提交的代碼 apache
四、控制代碼訪問權限 windows
五、解決多人開發形成的代碼衝突 服務器
3、可供咱們選擇的版本控制系統 網絡
一、VCS 二、VSS、CVS 三、ClearCase、SVN、Perforce、TFS 四、Mercurial(水銀/水星)、Git架構
4、比較上面的版本控制系統(版本控制發展歷史)分佈式
一、本地版本控制 二、集中版本控制 三、分佈式版本控制
5、咱們喜歡採用的版本控制系統
一、SVN 二、Git 6、SVN 一、SVN的歷史:2000年2月,CVS做者之一Karl Fogel,CollabNet公司
二、SVN的架構 1.SVN網絡示意圖 2.SVN的部署結構 (1)單機結構 (2)本地文件系統 (3)網絡結構 (4)C/S結構 (5)B/S結構
3.SVN的存儲結構 (1)SVN倉庫(Repository):保存各個版本的軟件資源、記錄版本更新歷史、維護版本分支……
(2)本地的工做目錄(Working Directory):開發者進行工做的地方
4.C/S結構下的存儲示意圖
三、軟件 1.Apache官網地址:http://subversion.apache.org 2.TortoiseSVN官網地址:http://tortoisesvn.tigris.org
四、SVN圖標的含義 五、SVN經常使用實操 1.Checkout檢出 2.Add添加文件或文件夾 3.Commit提交 4.Update to revision歷史版本回溯
5.Update更新 6.衝突 7.鎖定 8.創建分支
9.忽略: (1)設置SVN忽略文件和目錄(文件夾):http://blog.csdn.net/hemingwang0902/article/details/6904205 (2)SVN 管理Android項目中忽略的設置和注意事項 1)如下不該該歸入SVN版本控制範圍: # bin目錄。編譯後生成的目標文件 # gen目錄。自動生成的R.java 尤爲是bin和gen目錄,必定要列入SVN忽略列表中!!切記。
2)若是是在Eclipse中,要設置build path讓其忽略.svn文件夾 菜單 - Project - Properties - Java Build Path - Source - xxx/src - Excluded,雙擊或點右邊的編輯,在Exclusion patterns中加入"**/.svn/**",讓Eclipse忽略.svn目錄便可。
(3)Ignored Resource .settings .class target *.iml .idea
10.把一個項目文件夾發佈到SVN服務器上 11.Export導出 12.備份
六、標準的SVN目錄結構 1.trunk主幹:主版本的代碼 2.tags里程碑版本:保存相對穩定的版本 3.branches分支:開發有必定風險的功能
七、SVN的使用規範 1.先更新,再提交 2.多提交 3.不要提交不能經過編譯的代碼 4.每次提交必須書寫明晰的標註 5.提交時注意不要提交本地自動生成的文件 6.不要提交本身不明白的代碼 7.慎用鎖定功能
八、SVN工做的一天 7、Git 一、Git簡介 二、Windows下Git的安裝 1.Windows版的Git官網:https://git-for-windows.github.io/ 2.TortoiseGIT:https://tortoisegit.org 三、Git的優點 1.分佈式,強調個體 2.公共服務器壓力和數據量都不會太大 3.速度快、靈活 4.任意兩個開發者之間能夠很容易的解決衝突 5.離線工做 四、論述SVN與Git的區別 1.SVN是C/S結構,集中式;Git分佈式,也能夠有服務端 2.SVN客戶端只有工做區域;Git客戶端有工做區域和本地倉庫 3.SVN不能離線操做;Git可離線操做,可日誌和進行本地提交 4.SVN速度慢;Git速度快 5.SVN是按文件方式存儲;而GIT把內容按元數據方式存儲 6.SVN的分支就是版本庫中的另外的一個目錄;而Git同一個工做目錄下 7.SVN有一個全局版本號;而Git沒有 8.GIT的內容存儲使用的是SHA-1哈希算法,因此內容的完整性要優於SVN
9.SVN的checkout對應Git的clone、pull、fetch 10.SVN的update對應Git的checkout 11.SVN的delete對應Git的rm 12.SVN的commit對應Git的push 8、Android Studio協做開發 一、Android Studio支持的協做開發插件 1.SVN 2.Git 3.CVS 5.Mercurial 二、在AS使用SVN與Git 1.導入導出工程 2.提交代碼 3.更新代碼 4.還原代碼 5.忽略相關文件 6.解決代碼衝突 7.查看修改歷史 三、如何利用版本控制工具進行團隊協做開發 1.設置訪問權限 2.配置忽略 3.解決代碼衝突 4.有風險的功能在分支下操做,開發成功再進行合併 5.討論和代碼審覈