git 與 svn 的主要區別

2021-07-15 19:44:53 字數 2515 閱讀 1219

git 和 svn 版本控制系統

1)svn: subversion的簡稱,屬於集中化的版本控制系統,而git 是分布式版本控制系統

2)git 的速度遠遠 比 svn 快

3)svn 版本控制工作必須聯網,而 git 支援本地版本控制工作.在git下,每乙個開發人員都有乙個伺服器的資料庫,支援開發人員本地提交

4)在分支使用方面,git 要比 svn 更加方便.可以根據需要開啟分支,在分支之間的切換也很方便. svn 在分支使用方面比較笨拙

5) git 儲存完整性要優於 svn,在碰到網路問題或者磁碟故障時,降低對版本庫的破壞

6).git把內容按元資料方式儲存,而svn是按檔案儲存

所有的資源控制系統都是把檔案的元資訊隱藏在乙個類似.svn,.cvs等的資料夾裡。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。因為,.git目錄是處於你的機器上的乙個轉殖版的版本庫,它擁有中心版本庫上所有的東西,例如標籤,分支,版本記錄等。

svn常用命令:

svn info :檢視檔案的詳細資訊 

svn diff :檢視不同版本的區別

svn log :檢視日誌資訊

svn list :列出版本庫下的檔案和目錄列表

svn status :檢視檔案狀態(簡寫svn st)

svn help :獲取幫助資訊(比如svn help ci)

svn lock :加鎖

svn unlock :解鎖

svn commit :將改動的檔案提交到伺服器(簡寫svn ci)

svn update :更新伺服器的**到本地 (簡寫svn up)

svn add :向本地的版本控制庫中新增新檔案

svn delete、svn remove :從本地的版本控制庫中刪除檔案(簡寫svn del、svn rm)

svn move :移動檔案或者目錄或檔案更名

svn mkdir :建立納入版本控制下的新目錄

svn revert :撤銷之前的一切修改

svn merge :將兩個版本之間的差異合併到當前檔案

git 常用命令:

git help :git指令幫助手冊

檢視其他指令的做法:git help 其他指令

配置使用者名稱:git config 「user.name」 使用者名稱(用於跟蹤修改記錄)

檢視配置資訊:git config –l

將此設定應用到整個系統中:git config ––global

git status :查檔案的狀態

檢視某個檔案的狀態:git status 檔名

檢視當前路徑所有檔案的狀態:git status

git log :檢視檔案的修改日誌

檢視某個檔案的修改日誌:git log 檔名

檢視當前路徑所有檔案的修改日誌:git log

用一行的方式檢視簡單的日誌資訊:git log ––pretty=oneline

檢視最近的n次修改:git log –n(n是乙個整數)

git diff :檢視檔案最新改動的地方

檢視某個檔案的最新改動的地方:git diff 檔名

檢視當前路徑所有檔案最新改動的地方:git diff

git init :初始化乙個空的本地倉庫,生成乙個.git目錄,用於維護版本資訊

在當前路徑初始化倉庫:git init

在其他路徑初始化倉庫:git init 倉庫路徑

遠端倉庫 : git init –bare

git add :將工作區的檔案儲存到暫緩區

儲存某個檔案到暫緩區:git add 檔名

儲存當前路徑的所有檔案到暫緩區:git add .(注意,最後是乙個點 . )

git commit :將暫緩區的檔案提交到當前分支

提交某個檔案到分支:git commit -m 」注釋」 檔名

儲存當前路徑的所有檔案到分支:git commit -m 」注釋」

git reset :版本回退(建議加上––hard引數,git支援無限次後悔)

回退到上n個版本:git reset ––hard head~n(n是乙個整數)

回退到任意乙個版本:git reset ––hard 版本號(版本號用7位即可)

git reflog :檢視分支引用記錄(能夠檢視所有的版本號)

git rm:刪除檔案(刪完之後要進行commit操作,才能同步到版本庫)

git push:將本地的倉庫資訊推送到遠端倉庫

工作區(working directory):倉庫資料夾裡除.git目錄以外的內容

版本庫(repository):.git目錄,用於儲存記錄版本資訊

暫緩區(stage)

分支(master):git自動建立的第乙個分支

head指標:用於指向當前分支

git add和git commit的原理

git add :把檔案修改新增到暫存區

git commit :把暫存區的所有內容提交到當前分支

SVN與Git的最主要的區別

一 svn是什麼?svn是集中式版本控制系統,版本庫是集中放在 伺服器的,而工作的時候,用的都是自己的電腦,所以首先要從 伺服器 得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到 伺服器。二 git是什麼?git是目前世界上最先進的分布式版本控制系統 git是分布式版本控制系統,那麼它就沒...

SVN與Git的最主要的區別?

說起git自然想到svn,我剛接觸到的版本控制工具是svn,svn是集中式版本控制系統,版本庫是集中放在 伺服器的,幹活的時候,先要從 伺服器 得到最新的版本,幹完活後,需要把自己做完的活推送到 伺服器。伺服器就好比是乙個相簿,你要改一本書,必須先從相簿借出來,然後回到家自己改,改完了,再放回相簿。...

SVN與Git的最主要的區別?

說起git自然想到svn,我剛接觸到的版本控制工具是svn,svn是集中式版本控制系統,版本庫是集中放在 伺服器的,幹活的時候,先要從 伺服器 得到最新的版本,幹完活後,需要把自己做完的活推送到 伺服器。伺服器就好比是乙個相簿,你要改一本書,必須先從相簿借出來,然後回到家自己改,改完了,再放回相簿。...