二者都有圖形化工具,作爲開發瞭解過程即可
文章目錄
1. svn
1. 概念
1. 介紹
SVN是Subversion的簡稱,開源的集中式管理代碼的版本控制系統
2. 原理
原理是把代碼都保存到一個固定的位置(倉庫),每次從這個位置拷貝更新代碼,進行編輯;再把修改後的代碼提交到該目錄中。多人協作開發也是如此。因此需要一個類似Oracle或者Mysql的服務器用於保存和管理庫文件(要保存的代碼等文件)的服務端——VisualSVN Server。還需要一個用戶的操作端,用於提交更新檢出代碼,常用的有idea的Svn插件,以及TortoiseSVN(小烏龜)。
3. 術語
- repository:倉庫,源代碼統一存放的地方
- checkout:提取,第一次需要從倉庫checkout一份代碼
- commit:提交,修改代碼後需要commit到倉庫
- update:更新,保持和倉庫中代碼一致
日常開發:到公司–checkout–幾天後,update–修改代碼,調試好–commit
如果兩個人同時修改同一文件的同一行代碼,提示conflict,需要手動merge,重新commit
如果文件沒有被svn管理,add添加到svn服務器
delete本地刪除,commit後真正從服務器刪除
2. 規範
1. 目錄規範
建倉庫可以選擇svn的目錄結構
Trunk爲主幹目錄,Branches爲開發的分支目錄,Tags爲發佈的版本目錄
假設完成1.0版本,打個tags即可
2. 分支與標記
分支的定義規則:Project name+日期時間+功能點
tags的定義規則: Project name+版本號
版本號的規則:xxx.xxx.xxx 第一個:革命性的產品升級版,第二個:新功能版,第三個:修正bug
tags一般只讀,不能修改
3. 主幹與分支的合併
先保證主幹最新(先update),在分支這邊merge
2. Git
1. 和svn的區別
svn:集中式版本控制系統,版本庫集中放在中央服務器。缺點:容錯性差,服務器單點故障
Git:分佈式版本控制系統
2. 工作流程
- 從遠程倉庫克隆Git資源到本地倉庫
- 從本地倉庫checkout代碼再進行代碼修改
- 提交前先將代碼提交到暫存區
- 提交修改,到本地倉庫,本地倉庫保存修改的各個歷史版本
- 需要和其他成員共享代碼,將代碼push到遠程倉庫
3. 工作區和暫存區
1. 概念
工作區working Directory 就是在電腦裏能看到的目錄,比如repository
版本庫:repository目錄裏的.git
暫存區:版本庫中稱爲stage或者叫index的地方
此外,裏面也有git自動創建的第一個分支master,以及指向master的指針head
2. 執行過程
git add:把文件修改添加到暫存區
git commit:提交修改,把暫存區所有內容提交給當前分支
3. 忽略文件或文件夾
工作區根目錄下創建.gitignore
文件,把要忽略的文件名填進去
4. 遠程倉庫
GitHub創建賬號
ssh協議
Secure shell安全外殼協議,目的:防止遠程管理過程的信息泄露問題
git bash執行命令生成公鑰和私鑰,在GitHub上配置公鑰
之後交互見流程圖