linux下svn常用指令

2021-10-06 09:25:57 字數 3810 閱讀 9260

a:add,新增

c:conflict,衝突

d:delete,刪除

m:modify,本地已經修改

g:modify and merged,本地檔案修改並且和伺服器的進行合併

u:update,從伺服器更新

r:replace,從伺服器替換

i:ignored,忽略

svn checkout path(path是伺服器上的目錄)

簡寫:svn co

例如:svn co

svn checkout

svn add

例如:svn add test.php(新增test.php)

進入到相應目錄下

第一步:svn add test.php

第二步:svn ci ./

第三不:svn update

svn add *.php(新增當前目錄下所有的php檔案)

例如往版本庫中新增某project和project內的所有內容

第一步:svn add /project/

第二部:svn ci project/ -m 「新增檔案」

第三步:svn update

svn commit

svn commit -m 「logmessage」

簡寫:svn ci

例如:svn ci -m 「提交**」

svn lock -m 「lockmessage」 [–force] path

svn unlock path

svn update -r m path

簡寫:svn up

1)svn status path(目錄下的檔案和子目錄的狀態,正常狀態不顯示)

2)svn status -v path(顯示檔案和子目錄狀態)

簡寫:svn st

svn delete

svn delete path -m 「delete test fle」

簡寫:svn (del, remove, rm)

例如:刪除版本庫中的projict資料夾

第一步:svn delete /project/ -m 「delete file」

更新本地副本

第二步:svn update

新增當前目錄下所有檔案

svn add *.php

svn log path

svn info path

svn diff path(將修改的檔案與基礎版本比較)

svn diff -r m:n path(對版本m和版本n比較差異)

簡寫:svn di

先 svn up,保證更新到最新的版本,如20;

然後用 svn log ,檢視歷史修改,找出要恢復的版本,如10 。如果想要更詳細的了解情況,可以使用svn diff -r 10:20 [檔案或目錄];

回滾到版本號10:svn merge -r 20:10 [檔案或目錄],注意版本號之間的順序,這個叫反向合併;

檢視當前工作版本中的檔案,如test.cpp和版本號10中檔案的差別:svn diff -r 10 test.cpp, 有差別則手動改之;

若無差別,則提交:svn ci -m「back to r 10,***xx」 [檔案或目錄]。這時svn庫中會生成新的版本,如21。

前2步如方法1,然後直接 svn up -r 10。當前的工作版本就是版本10了。但是注意,這時svn庫中會並不會生成新的版本,下次在本地svn up之後,還是會回到之前的版本。

svn merge -r m:n path

svn help

svn help ci

svn list path 顯示path目錄下的所有屬於版本庫的檔案和目錄簡寫:svn ls

svn mkdir: 建立納入版本控制下的新目錄。

用法:1、mkdir path…

每乙個以工作副本 path 指定的目錄,都會建立在本地端,並且加入新增排程,以待下一次的提交。

2、mkdir url… 建立版本控制的目錄。

每個以url指定的目錄,都會透過立即提交於倉庫中建立。在這兩個情況下,所有的中間目錄都必須事先存在。

svn revert: 恢復原始未改變的工作副本檔案 (恢復大部份的本地修改)。

用法: revert path… 注意: 本子命令不會訪問網路,並且會解除衝突的狀況。但是它不會恢復被刪除的目錄

svn switch (sw): 更新工作副本至不同的url。

用法:1、switch url [path]

更新你的工作副本,對映到乙個新的url,其行為跟「svn update」很像,也會將伺服器上檔案與本地檔案合併。這是將工作副本對應到同一倉庫中某個分支或者標記的方法。

2、switch --relocate from to [path…]

改寫工作副本的url元資料,以反映單純的url上的改變。當倉庫的根url變動(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用這個命令更新工作副本與倉庫的對應關係。

svn resolved: 移除工作副本的目錄或檔案的「衝突」狀態。

用法: resolved path… 注意: 本子命令不會依語法來解決衝突或是移除衝突標記;它只是移除衝突的相關檔案,然後讓 path 可以再次提交。

svn cat 目標[@版本]…如果指定了版本,將從指定的版本開始查詢。 svn cat -r prev filename > filename (prev 是上一版本,也可以寫具體版本號,這樣輸出結果是可以提交的)

雖然不像本章先前討論過的那些命令那麼常用,但是有時你也需要這些命令。

當subversion修改你的工作副本時(或者任何在.svn中的資訊),它嘗試盡可能做到安全。在改變乙個工作副本前,subversion把它的意 圖寫到乙個日誌檔案中。接下來它執行日誌檔案中的命令來應用要求的修改。最後,subversion刪除日誌檔案。從架構上來說,這與乙個日誌檔案系統 (journaled filesystem)類似。如果乙個 subversion操作被打斷(例如,程序被殺掉了,或機器當掉了)了,日誌檔案仍在硬碟上。重新執行日誌檔案,subversion可以完成先前開始 的操作,這樣你的工作副本能回到乙個可靠的狀態。

以下是svn cleanup所做的:它搜尋你的工作副本並執行所有遺留的日誌,在這過程中刪除鎖。如果subversion曾告訴你你的工作副本的一部分被「鎖定」了,那麼你應該執行這個命令。另外, svn status會在鎖定的項前顯示l。

$ svn status

l somedir

m somedir/foo.c

$ svn cleanup

$ svn status

m somedir/foo.c

使用svn import是把未版本化的檔案樹複製到資料庫的***法,它需要建立乙個臨時目錄。

$ 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.

上面的例子把在some/project目錄下mytree目錄的內容複製到資料庫中。

$ svn list file:///usr/local/svn/newrepos/some/project

bar.c

foo.c

subdir/

注意在匯入完成後,原來的樹沒有被轉化成乙個工作副本。為了開始工作,你仍然需要svn checkout這個樹的乙個新的工作副本。

linux下svn常用指令

windows下的tortoisesvn是資源管理器的乙個外掛程式,以覆蓋圖示表示檔案狀態,幾乎所以命令都有圖形介面支援,比較好用,這裡就不多說。主要說說linux下svn的使用,因為linux下大部分的操作都是通過命令列來進行,所以必須得掌握linux下svn的常用指令。當然linux下也有模仿t...

linux下svn常用指令

windows下的tortoisesvn是資源管理器的乙個外掛程式,以覆蓋圖示表示檔案狀態,幾乎所以命令都有圖形介面支援,比 較好用,這裡就不多說。主要說說linux下svn的使用,因為linux下大部分的操作都是通過命令列來進行,所以必須得掌握linux下svn的常用 指令。當然linux下也有模...

linux下svn常用指令

windows下的tortoisesvn是資源管理器的乙個外掛程式,以覆蓋圖示表示檔案狀態,幾乎所以命令都有圖形介面支援,比較好用,這裡就不多說。主要說說linux下svn的使用,因為linux下大部分的操作都是通過命令列來進行,所以必須得掌握linux下svn的常用指令。當然linux下也有模仿t...