版本管理SVN、Git的區別與使用

1. 分佈式、集中式版本管理

     我們在整個項目的開發過程中,會把項目分爲很多個階段來完成,每個階段都會有一個產出,並且在一個階段中也會有很多階段性的成果,同時一個項目都是由很多個人來配合完成的。爲了多人協作的方便以及各個階段成果的記錄,我們在開發的過程中會使用版本管理軟件來實現相關的管理
     我們所熟悉的版本控制器有SVN、Git。其中SVN是集中式版本管理軟件,Git爲分佈式版本管理軟件,下面我們來了解一下集中式和分佈式管理的區別。

1.1 集中式版本管理

      集中式版本控制系統,版本庫都是集中放在一個服務器中,當需要幹活的時候需要從服務器中獲取最新的版本,然後進行修改,當完成了這次修改之後需要再推送到中央服務器中。
在這裏插入圖片描述
      集中管理一般用於比較小的項目,且所有的成員都在一個局域網中,這樣使用起來也比較方便,局域網中的網速也還好,在上傳下載的時候網絡不會有什麼影響。

1.2 分佈式版本管理

      分佈式主要區別在於不需要一箇中央服務器,每個電腦都是一個完整的版本庫,自己開發的可以先在自己的電腦中管理,當階段性匯合的時候再推送給對方,對方就可以看到相符的修改。
      和集中式相比,分佈式比較安全,每個人的電腦都有完整的版本庫,某一個人的電腦壞掉不要緊,可以充其他人那裏得到一個完整的版本庫,而集中式的重要處理器出現了問題,就需要修復,在此過程中,其他所有人就無法正常的上傳與下載。
在這裏插入圖片描述

      同時git還有強大的分支管理,可以從主線中分出一個分支出來進行開發管理,當這個分支所需要的工作完成的時候又可以merge到主線匯合,特別時候一個項目中的多組並行開發。

2. SVN的使用

參考網絡上的使用https://www.cnblogs.com/zhoumiao/p/5459552.html

3. git的使用

把一個文件夾變成倉庫文件夾:git init
把文件添加到倉庫: git add file (全部的文件就用.表示下面也是一樣的)
把文件提交到倉庫: git commit –m “commont”
文件修改過後的添加提交也是上面兩個命令
查看當前文件與上一次提交的文件修改了哪裏:git diff
查看另個版本之間修改了什麼:git diff commentid1 conmentid2
查看當前工作去狀態:git status
查看提交的版本:git log --pretty=oneline
查看版本的文件修改:git show 版本 file
恢復到之前的版本:git reset --hard (HEAD^ HEAD~1.。。) / git reset --hard 1094a跟svn的updata to revision不一樣,
①,git如果沒有提交commit則reset會把工作區和暫存區的修改還原到reset的版本
②,Svn 如果有修改的,updateto revision則不會抹掉,而是會跟恢復的版本庫marge合併
③,Svn如果有修改,update 不會抹掉,而是會跟恢復的版本庫marge合併
查看自己進行的修改:git reflog
撤銷修改:git checkout – readme.txt 讓這個文件回到最近一次git commit或git add時的狀態。
把暫存區的修改撤銷掉(unstage),重新放回工作區:git reset HEAD (git add 之後的回退)

把工作區中刪除的文件從版本庫中刪除:git rm file

3.1 git工作區、版本庫

在這裏插入圖片描述

工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。
Git的版本庫裏存了很多東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有Git爲我們自動創建的第一個分支master,以及指向master的一個指針叫HEAD。

      add到暫存區stage:不會進行版本記錄,無法進行恢復
      commit到工作區HEAD:會做版本記錄,每次修改都會記錄,方便恢復

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