? ? ? ? 提到源代碼管理廊敌,大家多說都會想到兩個東西git和svn飒炎,還有一個svn的祖宗cvs不過現(xiàn)在基本沒人用了谁不,相比較我還是比較喜歡git钠导,國外已經(jīng)用的相當普遍了震嫉,很多大企業(yè)也都是用git了(eg:阿里),確實是好用牡属,但是很多企業(yè)來說覺得搭建git服務(wù)器太麻煩(確實)票堵,不搭建服務(wù)器也可以但是代碼是交給github服務(wù)器托管了,也就是開源了逮栅,可能嗎悴势!公司是有多敞亮...... 當然,交錢就可以私有化的措伐。
小白讀概念:
01. 源代碼管理工具概述
* 源代碼管理工具的作用:
# 能追蹤一個項目從誕生一直到定案的過程
# 記錄一個項目的所有內(nèi)容變化
# 方便地查閱特定版本的修訂情況
* 如果是團隊開發(fā)特纤,使用源代碼管理工具是強制性的!
* 如果是單人開發(fā)侥加,也強烈建議現(xiàn)在就開始使用源代碼管理工具
* 使用源代碼管理工具
# 由于使用簡單叫潦,不會增加工作量
# 不會對現(xiàn)有工作造成任何損害(壞的影響)
# 是一位合格的軟件開發(fā)人員必須掌握的技術(shù)
02. SVN介紹
================================================================================
SVN 是集中式源代碼管理工具
概念:
1> Repository? 代碼倉庫,保存代碼的倉庫
2> Server? ? ? 服務(wù)器官硝,保存所有版本的代碼倉庫
3> Client? ? ? 客戶端,只保存當前用戶的代碼倉庫
4> 用戶名&密碼? 訪問代碼倉庫需要使用自己的"用戶名和密碼"短蜕,從而可以區(qū)分出不同的人對代碼做的修改
操作:(主要的三步)
1> checkout? ? 將服務(wù)器上最新的代碼倉庫下載到本地氢架,"只需要做一次"
2> update? ? ? 從服務(wù)器上將其他人所做的修改下載到本地粱坤,"每天上班必須要做的事情"
3> commit -m? ? ? 將工作提交到服務(wù)器系冗,"每天下班之前至少做一次"
詳細步驟(一般都是項目經(jīng)理弄)
# 切換工作目錄
$ cd 經(jīng)理的工作目錄
# checkout服務(wù)器上的代碼倉庫
eg:$ svn co http://192.168.1.103/svn/weibo --username=manager --password=manager
提示:checkout(co)之后,命令行會記錄用戶名和密碼柳洋,后續(xù)操作不用再另行指定
02. 經(jīng)理添加文件
================================================================================
* svn 常用命令
# 查看本地代碼庫狀態(tài)
$ svn st
錯誤提示:"is not a working copy"警检,必須在svn的工作目錄下才能正確使用svn的命令
# 查看svn日志
$ svn log
# 查看某一個文件的日志
$ svn log filename
# 查看某一個文件某個版本的日志
$ svn log filename@1
--------------------------------------------------------------------------------
# 切換到工作目錄
$ cd weibo
# 創(chuàng)建文件
$ touch main.c
# 打開并編寫文件內(nèi)容
$ open main.c
* 將文件提交到服務(wù)器
--------------------------------------------------------------------------------
# 查看工作目錄狀態(tài)
$ svn st
# 將文件添加到本地版本庫中
$ svn add main.c
# 將文件提交到服務(wù)器的版本庫中
$ svn ci -m "添加了main.c文件"
"小結(jié)" - 添加文件的兩個步驟
--------------------------------------------------------------------------------
1>? 將新建的文件添加到本地代碼庫
$ svn add main.c
2>? 將剛剛添加的文件提交到服務(wù)器
$ svn ci -m "備注信息"
注意:一定要養(yǎng)成寫注釋的良好習慣
03. 團隊成員加入
1>? 張三
$ svn co http://10.0.1.15/svn/weibo --username=zhangsan --password=zhangsan
2>? 李四
$ svn co http://10.0.1.15/svn/weibo --username=lisi --password=lisi
"小結(jié)" 至此孙援,一個項目的搭建工作就告一段落了
1> 項目準備工作,通常由項目經(jīng)理完成
2> 程序員只需要把項目 co 到本地即可
提示:新入職一家公司后扇雕,別忘記讓經(jīng)理分配 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.*
# 將內(nèi)容提交到服務(wù)器
$ svn ci -m "添加了Person類"
05. 刪除文件
================================================================================
# 刪除文件
$ svn rm Person.h
# 提交刪除
$ svn ci -m "刪除了文件"
注意:不要使用文件管理器直接刪除文件
06. 撤銷修改
================================================================================
$ svn revert Person.m
07. 恢復(fù)到之前的某個版本
$ svn update -r 5
================================================================================
$ svn up
08. 沖突解決
(p) postpone? ? ? ? ? ? 對比
(mc) mine-conflict? ? ? 使用我的
(tc) theirs-conflict? ? 使用對方的
svn ?顯示的文件狀態(tài)
第1列狀態(tài)說明:描述文件被添加拓售、刪除或其他修改
--------------------------------------------------------------------------------
' ' 沒有修改
'A' 被添加到本地代碼倉庫
'C' 沖突
'D' 被刪除
'I' 被忽略
'M' 被修改
'R' 被替換
'X' 外部定義創(chuàng)建的版本目錄
'?' 文件沒有被添加到本地版本庫內(nèi)
'!' 文件丟失或者不完整(不是通過svn命令刪除的文件)
'~' 受控文件被其他文件阻隔
附錄:UNIX常用命令
1.? cd? ? ? 改變工作目錄
2.? pwd? ? 輸出當前工作目錄的絕對路徑
在UNIX中要執(zhí)行什么命令,一定要知道自己當前所在的工作目錄
3.? ls? ? ? 查看文件
$ ls? ? ? ? 顯示文件
$ ls -a? ? 顯示所有文件
$ ls -l? ? 列表顯示文件
$ ls -la? ? 列表顯示所有文件
4.? touch? 用于更改文件訪問和修改時間的標準UNIX程序镶奉,也被用于創(chuàng)建新文件
$ touch test.txt
注意:touch不修改test.txt內(nèi)容础淤,只更改它的訪問、修改時間哨苛,如果test.txt不存在鸽凶,它會被創(chuàng)建
5.? cat? ? 連續(xù)查看文件內(nèi)容
6.? more? ? 分頁查看文件內(nèi)容
提示:
1>? 命令和參數(shù)之間需要添加空格
2>? 如果要使用當前目錄中的文件名,輸入到一半時建峭,按TAB鍵能夠補全