整理 Subversion (SVN) 在 Linux 終端機下的高頻指令,涵蓋棧出、新增、提交、鎖定、更新、狀態、刪除、日誌、資訊、差異比較、合併、幫助、列表、建立目錄、還原、切換、衝突解決、輸出檔案內容等 18 大類操作。
| 操作 | 指令 | 範例/說明 |
|---|---|---|
| 棧出 | svn checkout URL [PATH] | svn co svn://192.168.1.1/pro/domain,縮寫 svn co |
| 新增檔案 | svn add FILE | svn add test.php、svn add *.php |
| 提交變更 | svn commit -m "LOG" [PATH] | svn ci -m "add test" test.php,縮寫 svn ci |
| 加鎖/解鎖 | svn lock -m "MSG" FILE / svn unlock FILE | 需伺服端支援鎖定 |
| 更新到版本 | svn update -r REV [PATH] | svn up -r 200 test.php 還原至版本 200,無 -r 則更新至最新 |
| 查看狀態 | svn status [PATH] | ?未納管 M修改 C衝突 A新增 K鎖定,縮寫 svn st |
| 詳細狀態 | svn status -v [PATH] | 顯示工作版本號、最後修改版本/人 |
| 刪除檔案 | svn delete URL -m "LOG" | 或 svn delete test.php 後 svn ci,縮寫 svn del/rm |
| 查看日誌 | svn log [PATH] | svn log test.php |
| 檔案資訊 | svn info [PATH] | svn info test.php |
| 比較差異 | svn diff [PATH] | 與基礎版本比較;svn diff -r 200:201 test.php 比較兩版本,縮寫 svn di |
| 合併差異 | svn merge -r M:N PATH | svn merge -r 200:205 test.php 將版本 200-205 變更合併至當前 |
| 查看幫助 | svn help [SUBCOMMAND] | svn help ci |
| 操作 | 指令 | 說明 |
|---|---|---|
| 列出版本庫目錄 | svn list URL | 縮寫 svn ls |
| 建立版控目錄 | svn mkdir PATH / svn mkdir URL | 本地建立待提交 / 遠端直接建立 |
| 還原本地修改 | svn revert PATH | 不存取網路,解除衝突狀態,但不恢復已刪除目錄 |
| 切換/重定位 URL | svn switch URL [PATH] / svn switch --relocate FROM TO [PATH] | 切換分支/標籤;修正倉庫根 URL 變更 |
| 解決衝突標記 | svn resolved PATH | 僅移除衝突標記,需手動解決內容衝突 |
| 輸出檔案內容 | svn cat TARGET[@REV] | svn cat -r PREV filename > filename 輸出上一版本內容 |
svn status、svn diff、svn revert 三指令在無網路環境下可正常執行,因 .svn 目錄保存了基礎版本副本。
co = checkout
ci = commit
st = status
up = update
di = diff
ls = list
del = delete (rm, remove)