svn常用命令

1卸夕、將文件checkout到本地目錄

de? >svn checkout path(path是服務(wù)器 上的目錄)例如:svn checkout svn://192.168.1.1/pro/domain

de>

2完丽、往版本庫中添加新的文件

de? >svn add file例如:svn add test.php(添加test.php)svn add *.php(添加當(dāng)前目錄下所有的php文件)

de>

3斩例、將改動(dòng)的文件提交到版本庫

de? >svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果選擇了保持鎖惶我,就使用–no-unlock開關(guān))例如:svn commit -m “add test fileformy test“ test.php簡寫:svn ci

de>

4、加鎖/解鎖

de? >svn lock -m “LockMessage“ [--force] PATH例如:svn lock -m “l(fā)ock test file“ test.phpsvn unlock PATH

de>

5等曼、更新到某個(gè)版本

de? >svn update -r m path例如:svn update如果后面沒有目錄层皱,默認(rèn)將當(dāng)前目錄以及子目錄下的所有文件都更新到最新版本 性锭。svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)svn update test.php(更新,于版本庫同步叫胖。如果在提交的時(shí)候提示過期的話草冈,是因?yàn)闆_突,需要先update瓮增,修改 文件怎棱,然后清除svn resolved,最后再提交commit)簡寫:svn up

de>

6绷跑、查看文件或者目錄狀態(tài)

de? >1)svn status path(目錄下的文件和子目錄的狀態(tài)拳恋,正常狀態(tài)不顯示)【?:不在svn的控制中;M:內(nèi)容被修改砸捏;C:發(fā)生沖突谬运;A:預(yù)定加入到版本庫;K:被鎖定】2)svn status -v path(顯示文件和子目錄狀態(tài))第一列保持相同垦藏,第二列顯示工作版本號(hào)梆暖,第三和第四列顯示最后一次修改的版本號(hào)和修改人。注:svn status掂骏、svn diff和 svn revert這三條命令在沒有網(wǎng)絡(luò)的情況下也可以執(zhí)行的轰驳,原因是svn在本地的.svn中保留了本地版本的原始拷貝。簡寫:svn st

de>

7弟灼、刪除 文件

de? >svndeletepath -m “deletetest fle“例如:svndeletesvn://192.168.1.1/pro/domain/test.php -m “delete test file”或者直接svndeletetest.php 然后再svn ci -m ‘deletetest file‘级解,推薦使用這種簡寫:svn (del, remove, rm)

de>

8、查看日志

de? >svn log path例如:svn log test.php 顯示這個(gè)文件的所有修改記錄田绑,及其版本號(hào)的變化

de>

9勤哗、查看文件詳細(xì)信息

de? >svn info path例如:svn info test.phpde>

10、比較差異

de? >svn diff path(將修改的文件與基礎(chǔ)版本比較)例如:svn diff test.phpsvn diff -r m:n path(對版本m和版本n比較差異)例如:svn diff -r 200:201 test.php簡寫:svn di

de>

11掩驱、將兩個(gè)版本之間的差異合并到當(dāng)前文件

de? >svn merge -r m:n path例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合并到當(dāng)前文件芒划,但是一般都會(huì)產(chǎn)生沖突豁延,需要處理一下)

de>

12、SVN 幫助

de? >svn helpsvn help ci——————————————————————————

de>

以上是常用命令腊状,下面寫幾個(gè)不經(jīng)常用的

——————————————————————————

13、版本庫下的文件和目錄列表

de? >svn list path顯示path目錄下的所有屬于版本庫的文件和目錄簡寫:svn ls

de>

14苔可、創(chuàng)建納入版本控制下的新目錄

de? >svn mkdir: 創(chuàng)建納入版本控制下的新目錄缴挖。用法: 1、mkdir PATH…2焚辅、mkdir URL…創(chuàng)建版本控制的目錄映屋。1、每一個(gè)以工作副本 PATH 指定的目錄同蜻,都會(huì)創(chuàng)建在本地端棚点,并且加入新增調(diào)度,以待下一次的提交湾蔓。2瘫析、每個(gè)以URL指定的目錄,都會(huì)透過立即提交于倉庫中創(chuàng)建默责。在這兩個(gè)情況下贬循,所有的中間目錄都必須事先存在。

de>

15桃序、恢復(fù)本地修改

de? >svn revert: 恢復(fù)原始未改變的工作副本文件 (恢復(fù)大部份的本地修改)杖虾。revert:用法: revert PATH…注意: 本子命令不會(huì)存取網(wǎng)絡(luò),并且會(huì)解除沖突的狀況媒熊。但是它不會(huì)恢復(fù)被刪除的目錄

de>

16奇适、代碼 庫URL變更

de? >svnswitch(sw): 更新工作副本至不同的URL。用法:1芦鳍、switchURL [PATH]2嚷往、switch–relocate FROM TO [PATH...]1、更新你的工作副本怜校,映射到一個(gè)新的URL间影,其行為跟“svn update”很像,也會(huì)將服務(wù)器上文件與本地文件合并茄茁。這是將工作副本對應(yīng)到同一倉庫中某個(gè)分支或者標(biāo)記的方法魂贬。2、改寫工作副本的URL元數(shù)據(jù)裙顽,以反映單純的URL上的改變付燥。當(dāng)倉庫的根URL變動(dòng)(比如方案名或是主機(jī)名稱變動(dòng)),但是工作副本仍舊對映到同一倉庫的同一目錄時(shí)使用這個(gè)命令更新工作副本與倉庫的對應(yīng)關(guān)系愈犹。我的例子:svnswitch--relocate http://59.41.99.254/mytt http://www.mysvn.com/mytt

de>

17键科、解決 沖突

de? >svn resolved: 移除工作副本的目錄或文件的“沖突”狀態(tài)闻丑。用法: resolved PATH…注意: 本子命令不會(huì)依語法來解決沖突或是移除沖突標(biāo)記;它只是移除沖突的相關(guān)文件勋颖,然后讓 PATH 可以再次提交嗦嗡。

de>

18、輸出指定文件或URL的內(nèi)容饭玲。

de? >svn cat 目標(biāo)[@版本]…如果指定了版本侥祭,將從指定的版本開始查找。svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本號(hào),這樣輸出結(jié)果是可以提交的)

de>

19茄厘、 查找工作拷貝中的所有遺留的日志文件矮冬,刪除進(jìn)程中的鎖 。

de? >當(dāng)Subversion改變你的工作拷貝(或是.svn 中 的任何信息)次哈,它會(huì)盡可能的小心胎署,在修改任何事情之前,它把意圖寫到日志文件中去窑滞,然后執(zhí)行l(wèi)og文件中的命令琼牧,然后刪掉日志文件,這與分類帳的文件系統(tǒng) 架構(gòu)類似葛假。如果Subversion的操作中斷了(舉個(gè)例子:進(jìn)程被殺死了障陶,機(jī)器死掉了),日志文件會(huì)保存在硬盤上聊训,通過重新執(zhí)行日志文 件抱究,Subversion可以完成上一次開始的操作,你的工作拷貝可以回到一致的狀態(tài)带斑。這就是svn cleanup 所作的:它查找工作拷貝中的所有遺留的日志文件鼓寺,刪除進(jìn)程中的鎖。如果Subversion告訴你工作拷貝中的一部分已經(jīng)“鎖定 ”了勋磕,你就需要運(yùn)行這個(gè)命令了妈候。同樣,svn status 將會(huì)使用L 顯示鎖定的項(xiàng)目:$ svn statusL somedirM somedir/foo.c $ svn cleanup$ svn statusM somedir/foo.c

de>

20挂滓、 拷貝用戶的一個(gè)未被版本化的目錄樹到版本庫苦银。

de? >svn import 命令是拷貝用戶的一個(gè)未被版本化的目錄樹到版本庫最快的方法,如果需要赶站,它也要建立一些中介文件幔虏。$ svnadmin create /usr/local/svn/newrepos $ svn import mytree file:///usr/local/svn/newrepos/some/project Adding mytree/foo.c Adding mytree/bar.c Adding mytree/subdir Adding mytree/subdir/quux.h Committed revision 1.在上一個(gè)例子里,將會(huì)拷貝目錄mytree 到版本庫的some/project 下:$ svn list file:///usr/local/svn/newrepos/some/project bar.c foo.c subdir/注意贝椿,在導(dǎo)入之后想括,原來的目錄樹并沒有 轉(zhuǎn)化成工作拷貝,為了開始工作烙博,你還是需要運(yùn)行svn checkout 導(dǎo)出一個(gè)工作拷貝瑟蜈。另附:為SVN 加入Email通知 可以通過Subversion的Hook腳本的方式為SVN 加入郵件列表功能 編譯安裝了Subversion后 在源碼的tools 下有一個(gè)comm-email.pl的Perl腳本烟逊,在你的檔案目錄下有一個(gè)hooks目錄,進(jìn)入到hooks目錄把post-commit.tmpl 改名為post-commit并給它可執(zhí)行的權(quán)限铺根。 更改post-commit腳本 把comm-email.pl腳本的決對路徑加上宪躯,否則 SVN 找不到comm-email.pl REPOS="$1" REV="$2" /usr/local/svn /resp/commit-email.pl "$REPOS" "$REV" email@address1.com email@address2.com #log-commit.py --repository "$REPOS" --revision "$REV" 最后一行是用來記日志的 我不用這個(gè)功能 所以注釋掉了

de>

svn將分支、主干等處理

de? >創(chuàng)建分支svn cp -m"create branch"http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/br_feature001 獲得分支 svn co http://svn_server/xxx_repository/branches/br_feature001 合并主干上的最新代碼到分支上cd br_feature001 svn merge http://svn_server/xxx_repository/trunk 如果需要預(yù)覽該刷新操作位迂,可以使用svn mergeinfo命令眷唉,如:svn mergeinfo http://svn_server/xxx_repository/trunk --show-revs eligible或使用svn merge --dry-run選項(xiàng)以獲取更為詳盡的信息。分支合并到主干一旦分支上的開發(fā)結(jié)束囤官,分支上的代碼需要合并到主干。SVN中執(zhí)行該操作需要在trunk的工作目錄下進(jìn)行蛤虐。命令如下:cd trunk svn merge --reintegrate http://svn_server/xxx_repository/branches/br_feature001 分支合并到主干中完成后應(yīng)當(dāng)刪該分支党饮,因?yàn)樵赟VN中該分支已經(jīng)不能進(jìn)行刷新也不能合并到主干。合并版本并將合并后的結(jié)果應(yīng)用到現(xiàn)有的分支上svn -r148:149merge http://svn_server/xxx_repository/trunk建立tags產(chǎn)品開發(fā)已經(jīng)基本完成驳庭,并且通過很嚴(yán)格的測試刑顺,這時(shí)候我們就想發(fā)布給客戶使用,發(fā)布我們的1.0版本svn copy http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/tags/release-1.0 -m "1.0 released"刪除分支或tagssvn rm http://svn_server/xxx_repository/branches/br_feature001svn rm http://svn_server/xxx_repository/tags/release-1.0同步trunk代碼至分支cd my-working-branchsvn merge http://my-repo/trunk該命令負(fù)責(zé)把從創(chuàng)建該branch后饲常,trunk上所有的修改復(fù)制一份蹲堂,然后應(yīng)用到本branch上,因此重復(fù)進(jìn)行merge會(huì)導(dǎo)致沖突

de>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贝淤,一起剝皮案震驚了整個(gè)濱河市柒竞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌播聪,老刑警劉巖朽基,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異离陶,居然都是意外死亡稼虎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門招刨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霎俩,“玉大人,你說我怎么就攤上這事沉眶〈蛉矗” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵沦寂,是天一觀的道長学密。 經(jīng)常有香客問我,道長传藏,這世上最難降的妖魔是什么腻暮? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任彤守,我火速辦了婚禮,結(jié)果婚禮上哭靖,老公的妹妹穿的比我還像新娘具垫。我一直安慰自己,他們只是感情好试幽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布筝蚕。 她就那樣靜靜地躺著,像睡著了一般铺坞。 火紅的嫁衣襯著肌膚如雪起宽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天济榨,我揣著相機(jī)與錄音坯沪,去河邊找鬼。 笑死擒滑,一個(gè)胖子當(dāng)著我的面吹牛腐晾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丐一,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼藻糖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了库车?” 一聲冷哼從身側(cè)響起巨柒,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柠衍,沒想到半個(gè)月后潘拱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拧略,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年芦岂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垫蛆。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡禽最,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袱饭,到底是詐尸還是另有隱情川无,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布虑乖,位于F島的核電站懦趋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疹味。R本人自食惡果不足惜仅叫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一帜篇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诫咱,春花似錦笙隙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掏呼,卻和暖如春坏快,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背憎夷。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工假消, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岭接。 一個(gè)月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像臼予,于是被迫代替她去往敵國和親鸣戴。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355