最近在作的一個項目,就用到了代碼管理工具,那麼就對SCN進行了一個簡單的瞭解,即原理和一些經常使用命令。html
那麼咱們爲何須要使用SVN呢,咱們能夠吧SVN當成是一個備份服務器,他能夠幫你記住每次上傳到這個服務器的檔案內容,而且自動的賦予每次變動的一個版本。程序員
由於若是是團隊開發的話,版本管控是很是重要,你沒法保證你手頭上的版本永遠都是對的,對於團隊開發來講,數據同步很是重要,由於互相都須要各自的數據,因此SVN能夠幫你解決這個問題。服務器
1.概述svn
SVN 是集中式源代碼管理工具
概念:
1> Repository 代碼倉庫,保存代碼的倉庫
2> Server 服務器,保存全部版本的代碼倉庫
3> Client 客戶端,只保存當前用戶的代碼倉庫
4> 用戶名&密碼 訪問代碼倉庫須要使用本身的"用戶名和密碼",從而能夠區分出不一樣的人對代碼作的修改
操做:
1> checkout 將服務器上最新的代碼倉庫下載到本地,"只須要作一次"
2> update 從服務器上將其餘人所作的修改下載到本地,"天天上班必需要作的事情"
3> commit 將工做提交到服務器,"天天下班以前至少作一次"
經常使用命令:
# 切換工做目錄
$ cd 經理的工做目錄
# checkout服務器上的代碼倉庫
$ svn co http://10.0.1.15/svn/weibo --username manager --password jingli
提示:checkout(co)以後,本地代碼庫中會記錄用戶名和密碼,後續操做不用再另行指定
02. 經理添加文件
================================================================================
* svn 經常使用命令
--------------------------------------------------------------------------------
# 查看本地代碼庫狀態
$ svn st
錯誤提示:"is not a working copy",必須在svn的工做目錄下才能正確使用svn的命令
# 查看svn日誌
$ svn log
# 查看某一個文件的日誌
$ svn log filename
# 查看某一個文件某個版本的日誌
$ svn log filename@1
* 建立文件
--------------------------------------------------------------------------------
# 切換到工做目錄
$ cd weibo
# 建立文件
$ touch main.c
# 打開並編寫文件內容
$ open main.c
* 將文件提交到服務器
--------------------------------------------------------------------------------
# 查看工做目錄狀態
$ svn st
# 將文件添加到本地版本庫中
$ svn add main.c
# 將文件提交到服務器的版本庫中
$ svn ci -m "添加了main.c文件"
"小結" - 添加文件的兩個步驟
--------------------------------------------------------------------------------
1> 將新建的文件添加到本地代碼庫
$ svn add main.c
2> 將剛剛添加的文件提交到服務器
$ svn ci -m "備註信息"
注意:必定要養成寫註釋的良好習慣
03. 團隊成員加入
================================================================================
1> 張三
$ svn co http://10.0.1.15/svn/weibo --username=zhangsan --password=zhang
2> 李四
$ svn co http://10.0.1.15/svn/weibo --username=lisi --password=li
"小結" 至此,一個項目的搭建工做就告一段落了
1> 項目準備工做,一般由項目經理完成
2> 程序員只須要把項目 co 到本地便可
提示:新入職一家公司後,別忘記讓經理分配 svn 的帳號和密碼
04. 張三添加文件
================================================================================
# 添加文件 Person.h Person.m
$ touch Person.h Person.m
# 修改 Person.h Person.m
$ open Person.h
$ open Person.m
# 將 Person.h Person.m 添加到本地代碼庫
$ svn add Person.*
# 將內容提交到服務器
$ svn ci -m "添加了Person類"
05. 刪除文件
================================================================================
# 刪除文件
$ svn rm Person.h
# 提交刪除
$ svn ci -m "刪除了文件"
注意:不要使用文件管理器直接刪除文件
06. 撤銷修改
================================================================================
$ svn revert Person.m
07. 恢復到以前的某個版本
================================================================================
$ svn up
08. 衝突解決
(p) postpone 對比
(mc) mine-conflict 使用個人
(tc) theirs-conflict 使用對方的
顯示的文件狀態:
第1列狀態說明:描述文件被添加、刪除或其餘修改
--------------------------------------------------------------------------------
' ' 沒有修改
'A' 被添加到本地代碼倉庫
'C' 衝突
'D' 被刪除
'I' 被忽略
'M' 被修改
'R' 被替換
'X' 外部定義建立的版本目錄
'?' 文件沒有被添加到本地版本庫內
'!' 文件丟失或者不完整(不是經過svn命令刪除的文件)
'~' 受控文件被其餘文件阻隔
2.工具介紹
3.小結:工具
* 使用源代碼管理工具的好處:
# 能追蹤一個項目從誕生一直到定案的過程
# 記錄一個項目的全部內容變化
# 方便地查閱特定版本的修訂狀況
* 若是是團隊開發,使用源代碼管理工具是強制性的!
* 若是是單人開發,也強烈建議如今就開始使用源代碼管理工具
* 使用源代碼管理工具
# 因爲使用簡單,不會增長工做量
# 不會對現有工做形成任何損害(壞的影響)
# 是一位合格的軟件開發人員必須掌握的技術post