面試中,可能會問及一些關(guān)于版本控制的問題,理解SVN和Git的原理,記住常用命令。
SVN
- SVN是集中式源代碼管理工具
概念:
- Repository 代碼倉庫,保存代碼的倉庫
- Server 服務(wù)器,保存所有版本的代碼倉庫
- Client 客戶端,只保存當前用戶的代碼倉庫
- 用戶名&密碼 訪問代碼倉庫需要使用自己的‘用戶名和密碼’,區(qū)分不同人對代碼做的修改
操作:
- checkout 將服務(wù)器上最新的代碼倉庫下載到本地,“只在最開始做一次“
- update 從服務(wù)器上將其他人所做的修改下載到本地,“每天上班必須要做的事情“
- commit 將工作可運行代碼提交到服務(wù)器,“每天下班前至少做一次”
- SVN常用命令
切換工作目錄
$ cd 工作目錄
checkout 服務(wù)器上的代碼倉庫
$ svn co http://xxx/svn/xxxx --username=manager --password=manager
查看本地代碼庫狀態(tài)
$ svn st
錯誤提示: "is not a working copy",必須在svn的工作目錄下才能正確使用svn的命令
查看svn日志
$ svn log
查看某一個文件的日志
$ svn log filename
查看某一個文件某個版本的日志
$ svn log filename@1
創(chuàng)建文件
$ touch main.c
打開并編寫文件內(nèi)容
$ open main.c
將文件添加到本地版本庫中
$ svn add main.c/main.*
將文件提交到服務(wù)器的
$ svn ci -m " 備注信息 "
刪除文件
$ svn rm Person.h
提交刪除
$ svn ci -m "刪除了文件 "
撤銷修改
$ svn revert Person.m
恢復(fù)到之前的某個版本
$ svn update -r 5
沖突解決
(p) postpone 對比
(mc) mine-conflict 使用我的
(tc) theirs-conflict 使用對方的
svn st 顯示的文件狀態(tài)
' ' 沒有修改
'A' 被添加到本地代碼倉庫
'C' 沖突
'D' 被刪除
'I' 被忽略
'M' 被修改
'R' 被替換
'X' 外部定義創(chuàng)建的版本目錄
'?' 文件沒有被添加到本地版本庫內(nèi)
'!' 文件丟失或者不完整(不是通過svn命令刪除的文件)
'~' 受控文件被其他文件阻隔