1. 程式人生 > >原始碼管理工具SVN和Git小結

原始碼管理工具SVN和Git小結

這篇文章主要是對原始碼管理工具進行了一些總結,也算是自己對相關知識的一個梳理。文章主要從為什麼使用,基本知識,二者之間的一些常用指令的對比以及衝突的解決進行梳理。文章只是自己的一些理解,可能會有一些偏差,有問題的可以隨時提出!

一、為什麼要使用原始碼管理工具

1、能記錄一個專案從開始到結束的整個過程。

2、追蹤專案中所有內容的變化情況,如增加了什麼內容,刪除了什麼內容,修改了什麼內容等等。

3、版本控制,可以清楚的知道每個版本之間的異同點,如版本2.0相比較版本1.0多了什麼內容,功能等。

4、 許可權控制,防止程式碼混亂,提高安全性,防止一些不必要的損失和麻煩,簡單的理解就是為什麼職位做什麼事情,不能越界。如控制程式設計師A對正在開發的專案具有開發的許可權,其他專案不具有開發的許可權,如果不進行控制的話,那麼對其他專案的開發許可權也對程式設計師A開放,如果程式設計師A對其他專案不小心進行了錯誤的操作 如刪除,就會造成一些損失。

5、責任追究,防止互相推卸責任,可以清楚的知道誰對哪個檔案進行了什麼修改,導致了專案無法正常執行。

6、回退處理,執行了錯誤的操作之後還可以有補救的機會,如從版本1.0升級到版本2.0,後來發現版本2.0有一個錯誤,這時候可以進行回退處理,比較方便。

7、衝突解決,在團隊的多人協同開發中,衝突是經常有的事情,比如存在著相同的檔名稱,同一個檔案中有著相同功能的函式等等,這時候使用原始碼管理工具可以比較方便的解決衝突。衝突的解決一般按照“複製-修改-合併”原則進行。

8、。。。。。。。

二、基本知識

1、一般使用SVN或者Git進行原始碼的管理。

2、SVN是集中式的、Git是分散式的。

      2.1集中式:一臺伺服器控制著所有的程式碼,這臺伺服器的程式碼是最新的,其他電腦的程式碼操作(如下載、提交)都需要通過這臺伺服器才可以執行。

      2.2分散式:每臺電腦都相當於一個伺服器,程式碼是最新的,比較靈活。

      對比:Git的速度比SVN快;Git比SVN靈活;SVN一旦沒有網路或者伺服器掛了的話,其他電腦都無法執行操作,但是Git可以先提交到本地版本庫,等待聯網的時候再提交到遠端程式碼倉庫。

3、明白一些基本概念:工作區、本地版本庫、伺服器(遠端程式碼倉庫)。

     3.1 本地版本庫可以簡單的理解為為.svn(對SVN來講)或者.git(對Git來講)檔案下的內容,裡面記錄有關版本的一些資訊。

     3.2 工作區就是除了.svn(對SVN來講)或者.git(對Git來講)檔案下之外的內容,也就是我們平時書寫程式碼的地方。

     3.3 伺服器是一個遠端程式碼倉庫,用於容易儲存程式碼的地方,一般程式碼的上傳、下載都是通過伺服器來操作的。

4、本地版本庫和遠端程式碼倉庫的互動過程大致為:在本地電腦的工作區寫程式碼,完成之後提交到本地的版本控制庫,然後再提交到遠端的程式碼倉庫。指令對比如下:

     SVN:add----commit

     Git:add----commit----push

三、對比:

對比專案 SVN Git 說明
結構 集中式 分散式
版本庫 .svn .git
指令 ……. init 初始化一個倉庫
……. config 配置資訊
help help 幫助指令,一些指令的格式
checkout                                              clone                                                   從伺服器(遠端程式碼倉庫)把全部程式碼下載到本地電腦上
update                                                  pull 把伺服器的程式碼下載到本地電腦上,不是全部下載,只是不同的才下載
commit                                                   commit + push 把本地電腦的程式碼提交到伺服器(遠端程式碼倉庫)
info ……. 檢視某個檔案的最新版本,以及在最新版本中是誰在什麼時間進行的操作。
log log 檢視某個檔案的所有版本情況,以及在每個版本是誰在什麼時間執行了什麼操作。
add add 向本地版本控制庫中新增檔案
delete 、remove rm 從本地版本控制庫中移除檔案
status status 檢視某個檔案的本地狀態。SVN中A代表檔案加入到本地版本庫中,D代表檔案從本地版本庫中刪除了,?代表這個檔案不在本地版本庫中。Git中代表檢視檔案在不在快取區中。
list ……. 檢視哪些檔案是在伺服器中
revert、update reset SVN:一、檔案還沒有提交到伺服器:使用revert,此時回退操作分為兩步:(一)status檢視檔案狀態,二、revert對之前執行的操作進行回退。二、檔案已經提交到伺服器:使用update,此時回退操作分為四步:(一)log檢視檔案的所有版本;(二)update回退到某個版本(svn update -r 版本號 [檔案]),把回退的檔案拷貝到另外一個地方;(三)update更新本地版本,由於回退的原因,此時本地的版本小於伺服器的版本,肯定會產生衝突;四、手動解決衝突,利用剛才拷貝出來的檔案。
Git:一、檔案還沒有提交到伺服器:使用reset,                     git reset --hard HEAD^   --- 回退到上個版本
 git reset --hard HEAD~n --- 回退n個版本
       git reset --hard 版本號  --- 回退或者前進到某個版本 (可以取消一些還沒有提交到倉庫的操作)。二、檔案已經提交到伺服器,可以先在本地回退到相應版本,然後在push到遠端程式碼倉庫

四、衝突

1、產生:

    1.1 大多數衝突的產生一般是本地倉庫的版本低於伺服器或者遠端倉庫版本導致的。

    1.2 多人開發中一個專案中存在同名的檔案。

    1.3 多人同時修改同一個檔案,導致這個檔案中存在兩個同名的方法。

2、解決:衝突的解決一般需要手動解決,遵循著“複製--修改--合併”的原則。

    把自己的和伺服器的檔案同時保留下來,然後根據需要進行修改,修改後進行合併並且再次提交到伺服器。

以上就是一些內容的梳理,有些疏漏在所難免,歡迎指正! 

相關推薦

原始碼管理工具SVNGit小結

這篇文章主要是對原始碼管理工具進行了一些總結,也算是自己對相關知識的一個梳理。文章主要從為什麼使用,基本知識,二者之間的一些常用指令的對比以及衝突的解決進行梳理。文章只是自己的一些理解,可能會有一些偏差,有問題的可以隨時提出! 一、為什麼要使用原始碼管理工具 1、能記錄一個

版本控制工具SVNGIT

一、為什麼會出現原始碼管理工具 為了解決在軟體開發過程中,由原始碼引發的各種不爽、繁瑣的問題, 二、不採用原始碼管理工具會出現什麼問題 1、無法後悔:做錯了一個操作後,沒有後悔藥可以吃 2、版本備份:費空間、費時間 3、版本混亂:因版本備份過多造成混亂,難以找回正確的想要的版本 4、程式碼衝突:多

原始碼管理工具 一一 Git-介紹與SVN的對比

一、Git簡介和與SVN的簡單對比 1. 什麼是git? git是一款開源的分散式版本控制工具 在世界上所有的分散式版本控制工具中,git是最快、最簡單、最流行的 git的起源 作者是Linux之父:Linus Benedict Torvalds 當初開發git僅僅是為了輔

原始碼管理工具 一一 SVN-衝突演示解決衝突

衝突演示和解決衝突 一.回顧上節課的內容 1.張三在person.h中添加了weight屬性,並提交到了伺服器 2.李四並不知道張三向伺服器提交了最新程式碼,而是在person.h中的同一行添加了name屬性,這個時候進行提交報了out of date過期的錯誤,需要先更新伺服器最新的程式碼 二.進行開發

Eclipse中使用SVNGit版本管理工具

  在Eclipse裡下載Subclipse外掛(此方法也適用於MyEclipse),用來使用SVN或者Git對專案進行版本管理。 方法一:從Eclipse Marketplace裡面下載 具體操作:開啟Eclipse --> Help --> Ecl

原始碼管理工具-git

一、原始碼管理工具概述 1、原始碼工具作用 程式碼回滾:返回到先前的某個狀態 程式碼合併:多人開發,將各自開發的模組進行合併 版本備份:專案開發到一定階段後進行備份 許可權控制:限制不同使用者訪問或操作不同的檔案 問題定位:出現問題後定位是誰造成的哪裡造成的 可以記錄專案的所有內

原始碼管理工具 一一 Git-起別名、檢視版本、版本回退等

GIT命令列的其他用法 一.給命令起別名 1."給status"起別名為"st" git config alias.st "status" 2.來到.git->.config檢視起的別名

原始碼管理工具 GIT的使用步驟的詳細講解

是否顯示隱藏資料夾的終端命令: defaults write com.apple.finder AppleShowAllFiles YES defaults write com.apple.finder AppleShowAllFiles YES 1.g

Visual Studio 2013中的原始碼管理工具Git的使用

1.先在GitHub中建立一個repository(原始碼倉庫),注意不要以readme方式初始化,否則GitHub自動建立master branch,這樣在VS中Git工具初次推送master branch時將失敗,提示在相應的URL中已經有了master branch!

svngit版本管理優缺點

1.SVN優缺點優點: 1、 管理方便,邏輯明確,符合一般人思維習慣。 2、 易於管理,集中式伺服器更能保證安全性。 3、 程式碼一致性非常高。 4、 適合開發人數不多的專案開發。 缺點: 1、 伺服器壓力太大,資料庫容量暴增。 2、 如果不能連線到伺服器上,基本上不可以工作

原始碼管理工具 一一 SVN-目錄結構說明

1.一般一個專案在開發的時都是在主幹裡進行開發的 2.當1.0版本開發完畢後釋出到AppStore供使用者使用 3.這時候會對1.0版本進行備份,將1.0版本備份到tags目錄下 4.如果反饋良好則會在1.0基礎上繼續開發2.0版本,開發依舊在主幹裡進行 5.假如在2.0開發的過程中,2.0版本並沒有開發完畢

最好用的svn的Mac版原始碼管理工具Cornerstone

⾮非常重要: 如果你想把這個更改作⽤用到伺服器上,那麼你需要選中整個Working Copy(當你不能確定更改的是哪個⽂檔案的時候)進⾏行提交,剛開始使⽤用SVN的時候,每次提交程式碼到伺服器之前必須先再本地備份(當你熟練的時候可以不⽤用備份)!!!!為了防⽌止SVN出錯,導致程式碼丟失。在每次提交之前必須

SVNGit專案管理中-tag操作步驟

tag說明        所謂打tag,要從SVN官方推薦的目錄結構說起了。SVN官方推薦在一個版本庫的根目錄下先建立trunk、branches、tags這三個資料夾,其中trunk是開發主幹,存放日常開發的內容;branches存放各分支的內容,比如為不同客戶定製的不同

原始碼管理工具GIT

簡介: git是一款開源的分散式版本控制工具 在世界上所有的分散式版本控制工具中,git是最快、最簡單、最流行的 git的起源:作者是Linux之父:Linux Benedict Torvalds 當初開發git僅僅是為了輔助Linux核心的開發(管理原始碼) git的現

Navicat for MySQL數據庫管理工具安裝破解

安裝目錄 http 數據庫 官方下載 有一個 .com x64 load 安裝 Navicat for MySQL官方下載地址:https://www.navicat.com/en/download/navicat-for-mysql 1、下載後安裝 navicat110_

版本控制工具SvnGit

例如 ech source -s lan https git add 更改 date 首先介紹svn,屬於老牌的工具 svn ci 提交代碼 alias commit svn up 更新代碼 alias update svn st 修改的文件 alias st svn di

版本管理工具 SVN 的安裝配置及使用

SVN(subversion)詳解   SVN是近年來非常優秀的版本管理工具,與CSV管理工具一樣,SVN是一個跨平臺開元版本控制系統,但是SVN與眾不同的是,SVN會備份並記錄每個檔案每一次的修改更新變動。這樣我們可以把任意一個時間點檔案恢復到想要的某一箇舊版本,當然也可以直接瀏覽指定檔案的更新歷

gclient多原始碼管理工具 DEPS檔案

gclient來管理原始碼的checkout, update等。 gclient是google專門為這種多源專案編寫的指令碼,它可以將多個原始碼管理系統中的程式碼放在一起管理。甚至包括將Git和svn程式碼放在一起。   重點說明下和gclient密切相關的兩類檔案.gclie

Android 版本控制工具SVNGIT 區別, Git使用詳情

為什麼要用版本控制工具? 多人協作開發 方便程式碼統一管理 常用的版本控制工具有哪些? CVS, SVN, GIT GIT 和 SVN 的區別 Git 是目前世界上最先進的分散式版本控制系統 SVN 是集中式的管理工具 1.版本庫是集中放在中央伺服器的,而幹活的時

xcode第三方庫自動下載管理工具cocoapodsCarthage

程式碼倉庫工具介紹 不管是android studio還是xcode,如果沒有遠端程式碼倉庫工具支援,那麼你的專案引用的第三方庫,必須手動下載放到程式碼資料夾一起存放,複雜的話甚至還要額外做一些配置。 用上程式碼倉庫工具,您只需寫上需要依賴庫的名稱就可以,剩下的事情就由工具來幫你去下載相關檔