Keep simple but not too simple

详解Linux下svn命令[转]

上一篇 / 下一篇  2010-05-20 16:35:10 / 个人分类:开心共享

 本文讲述了Linux命令行下常用svn命令的使用方法,希望对您有所帮助。51Testing软件测试网&|-P's(^Wv_[&w`Y
51Testing软件测试网 V`4LV*_ycn
  1、Linux命令行下将文件checkout到本地目录51Testing软件测试网r0vY+H4lCK\6A ]z

"x U_1kW-V%rS9U wR0  svn checkout path(path是服务器上的目录)51Testing软件测试网9?6gxlf}!d}
51Testing软件测试网*[9|.{Pcxd-j
  例如:svn checkout svn://192.168.1.1/pro/domain51Testing软件测试网bSZ [1d~

J2y(T&ghj0  简写:svn co
&D8b2r*f O?:_051Testing软件测试网's6S0z$_.f
  2、Linux命令行下往版本库中添加新的文件
d IYi+ylQ0
+^QX ^p;M#@s0  svn add file
0m'_%q%sM7o+S:o+H051Testing软件测试网2vR Nl-IHL
  例如:svn add test.php(添加test.php)
^$a"B*sQ0
m~$x:Y\3c0  svn add *.php(添加当前目录下所有的php文件)
,|5zd%~cUo/Y8@9b6G0
*q0f-@ y!_o(C }CO0  3、Linux命令行下将改动的文件提交到版本库51Testing软件测试网"t._N4mT~%`4b

7P?'N:nE0  svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)51Testing软件测试网Z(m*FGF#r`0d
51Testing软件测试网BX _&g~C1B
  例如:svn commit -m “add test file for my test“ test.php
.C ~5`'Eh({!L B3yD/UP0
$x3Qx k*r pEtv0  简写:svn ci
5j+fqg%t051Testing软件测试网p[Q^ F;@.~:P
  4、Linux命令行下的加锁/解锁51Testing软件测试网*\3b5j8frbUR

Jst GG+[w\/U R0  svn lock -m “LockMessage“ [--force] PATH
'Jmb$\ Mu8X0
*X W9l*P@0  例如:svn lock -m “lock test file“ test.php51Testing软件测试网[f1Z2Y,y W$FOf6Q$b
51Testing软件测试网MO_,Q |iC
  svn unlock PATH
Gy5FE,kr B051Testing软件测试网0_/iA cT+?&tU
  5、Linux命令行下更新到某个版本51Testing软件测试网.Mn#y%] U-as
51Testing软件测试网G4]4c O&w c C}+R9T
  svn update -r m path
zT#W5w}v u0
(T:{m*cO?^(w9^0  例如:
,Y(J`M9I }*[051Testing软件测试网3Z%@W bKZ)Dp V
  svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。51Testing软件测试网;}2RH)h5w&I
51Testing软件测试网7o*L8HdCx@$C
  svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
$w*j[Ex*k#Yl0
*Ww'm*KoJ]JR p0  svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
nZ S8G;Wo%]^5~0
mO;|Sh3Gd Y)g0  简写:svn up
Z"a)eHN"B m5}@0
E;[p^Hbnn0  6、Linux命令行下查看文件或者目录状态
8Bu&v,o z]051Testing软件测试网[TLT2c.JL0v
  1)svn status path(目录下的文件和子目录的状态,正常状态不显示)51Testing软件测试网:c dz0\!_;y

D*V{T L8O?0  【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】51Testing软件测试网"qSc#f^ ws!O

,s @]y Uor ]7c0  2)svn status -v path(显示文件和子目录状态)51Testing软件测试网+i5]S(Z oR2jW

8h[^ ?YqKt0  第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。51Testing软件测试网 nX#SyC*E-}g

%kp6II9k,[0@i0  注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
mb5xS/z1E0
`-|0LNT0  简写:svn st
^,d o"hM1D\l-O#M0
T&M.m)];[3] R0  7、Linux命令行下删除文件51Testing软件测试网 E"AGM w@
51Testing软件测试网E5QErn%K
  svn delete path -m “delete test fle“51Testing软件测试网;t yp x'Zq Q
51Testing软件测试网 Rt;k*C ys`
  例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
$a I[t7vp051Testing软件测试网C4i:Q3O)o+g,A
  或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种51Testing软件测试网+|Q)Qq(E;hrT
51Testing软件测试网9lZS$^2N
  简写:svn (del, remove, rm)51Testing软件测试网Y7] bN[1D3{vF+H"E;{

x?ga h0  8、Linux命令行下查看日志51Testing软件测试网rA%q-~wZw
51Testing软件测试网$zT&w RZj:Z
  svn log path51Testing软件测试网 ?Q"r$xI"u6?v7|e

2m-ntw3b Hv!ldy9t0  例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
I E{/M$s gnR0
XL_mtL3A0  9、Linux命令行下查看文件详细信息51Testing软件测试网#G/Q8U.A+P^6s&q S

}6yF L"^"nu:X0  svn info path
-L'_L8sOMJ6M0
@E BG-ts0  例如:svn info test.php51Testing软件测试网-e(]I-xc,l

QL0K.r?/\:^2h:|0  10、Linux命令行下比较差异51Testing软件测试网7c.T)JsE(hh O
51Testing软件测试网R3W%O3[?k/F
  svn diff path(将修改的文件与基础版本比较)51Testing软件测试网~p8UL{x

1Ng)PYW$e7x/c,G!C0  例如:svn diff test.php
Y3Jl+RTe051Testing软件测试网Y|:|%i[
  svn diff -r m:n path(对版本m和版本n比较差异)51Testing软件测试网wv/cIV%p:J
例如:svn diff -r 200:201 test.php51Testing软件测试网w-N-~w4}A ]*tm
51Testing软件测试网h4M1FK l
  简写:svn di51Testing软件测试网*d6f0A~8`&_
51Testing软件测试网5]P8H%zIR#|l"b
  11、Linux命令行下将两个版本之间的差异合并到当前文件51Testing软件测试网dzg|d XYs

g+R+x+A Q tf0  svn merge -r m:n path
[%\ CB3@'K\i{051Testing软件测试网p9Eh N9V?O q,Y
  例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)51Testing软件测试网@9E.jh#FR
51Testing软件测试网I,S/Ad0\4vj!hp
  12、Linux命令行下SVN 帮助51Testing软件测试网2U*Z%T o$|I"c

Y"t"R[0R\M$]0  svn help51Testing软件测试网8~ ?'V5~r

L.l!F``4TE1j/Q0  svn help ci
J5B_ n0I;wSa:|!]051Testing软件测试网0Di1F@,@:QK4R
  以上是常用命令,下面写几个不经常用的51Testing软件测试网*XAL1U1Q od

%B.[$@ks F#OwwQ[0  13、Linux命令行下版本库下的文件和目录列表
x(o ?X2WPg|0
)dX/?{:L ^\0  svn list path
-F8p#Y u4rRm051Testing软件测试网xgY F:k[2S5A
  显示path目录下的所有属于版本库的文件和目录51Testing软件测试网Q$cJ _"~q

5NGJ,J$U0  简写:svn ls51Testing软件测试网/Fj`t5p~7H+Of#h
51Testing软件测试网o odC#]YwF:_
  14、Linux命令行下创建纳入版本控制下的新目录51Testing软件测试网6R2VH8?-p^ tW!G

'g/J?;SX Sy o:v N0  svn mkdir: 创建纳入版本控制下的新目录。51Testing软件测试网l ^0E,k$A5fWae;J
51Testing软件测试网#].j-Hs9YpR
  用法: 1、mkdir PATH…51Testing软件测试网'ZO(p6|@nKP#^

)ZjO+vO+d | @G0  2、mkdir URL…
?;t"SB d%n0
W _(U} {9k0  创建版本控制的目录。
[ bo.EI/O051Testing软件测试网D V+[1o1?p
  1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。51Testing软件测试网!_n.{r] M"R

:f6VM$ZuoH `K$IK0  2、每个以URL指定的目录,都会透过立即提交于仓库中创建.在这两个情况下,所有的中间目录都必须事先存在。
L4hy0w@ ^051Testing软件测试网tDs(h Q5s3gf&G
  15、Linux命令行下恢复本地修改
$Ae5q8X"H&Pli!}0
[ rxbLT7mw4@0  svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:51Testing软件测试网-Kl?5O8F"pB5e

(Y ndL ~&?Qy.^0  用法: revert PATH…51Testing软件测试网'[ccl*d4vJH

'|0Vs8PrL-M6|0  注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录
)lD)Q!~/ET1C0
x0h4a E A.}O6{Pv1Lc0  16、Linux命令行下代码库URL变更51Testing软件测试网AnNd2Wj
51Testing软件测试网QgyE B
  svn switch (sw): 更新工作副本至不同的URL。
u$G rO1{051Testing软件测试网Jt-Df7Xa U\|/N
  用法: 1、switch URL [PATH]51Testing软件测试网#Q fs9O_Y_3iO4n y

Vd2`"N:PUA0  2、switch –relocate FROM TO [PATH...]51Testing软件测试网*{iB [6hk Yrr
51Testing软件测试网n8N8Ty*s1z
  1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。51Testing软件测试网%o*EOIg'f1k;S

;f v:`%eF*|OIN0  2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。
|;]$GR"yO051Testing软件测试网F7{/nK|y
  17、Linux命令行下解决冲突51Testing软件测试网 CG0F.R8w AN
51Testing软件测试网H2h9X&U{4TXw
  svn resolved: 移除工作副本的目录或文件的“冲突”状态。51Testing软件测试网fc-Z8D(yN
51Testing软件测试网]DI&rE;t9p0q0w
  用法: resolved PATH…
Rw!kXxb051Testing软件测试网$n)~@ [#_D9H7~
  注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。
lg7jr8E sa*XAe8Y0
d&h)bSCM4dHo ~0  18、Linux命令行下输出指定文件或URL的内容。
[7}(bc3Z`i0
#~#];CN;g_:h7T0  svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。51Testing软件测试网+j_a7ISTT

)Let0~&||7x vW0  svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)51Testing软件测试网 { {} wjAw
51Testing软件测试网:~3J:d5R'D |P
  以上是Linux命令行下常用svn命令的使用方法。google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);

TAG:

 

评分:0

我来说两句

Open Toolbar