java提高之版本控制系統

二者都有圖形化工具,作爲開發瞭解過程即可

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. 工作流程

  1. 從遠程倉庫克隆Git資源到本地倉庫
  2. 從本地倉庫checkout代碼再進行代碼修改
  3. 提交前先將代碼提交到暫存區
  4. 提交修改,到本地倉庫,本地倉庫保存修改的各個歷史版本
  5. 需要和其他成員共享代碼,將代碼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上配置公鑰

之後交互見流程圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章