三分鐘用 Git 學會使用 SVN

三分鐘用 Git 學會使用 SVN

五月 30, 2022

Subversion(SVN)

Last updated: 2022-06-09 13:58:50

前言

學過 Git 轉換到 SVN 只需要三分鐘既可完成基本操作,資料一樣會複製一份在本機,最大差異有 2 點

  1. svn add 只需要一次,之後只會 svn commit 和 svn delete ,少了 git add 暫存的機制
  2. svn commit 等同 git commit + git push ,沒 svn commit 前都不會被上傳與記錄

Git 與 SVN 指令的關係

動作GitSVN
複製 Repositorygit clonesvn checkout
提交git commitsvn commit (svn ci)
查看提交記錄git showsvn cat
確認狀態git statussvn status (svn st)
確認差異git diffsvn diff
確認記錄git logsvn log
增加git addsvn add
移動git mvsvn mv
刪除git rmsvn rm / svn del / svn delete
取消修改git checkout / git resetsvn revert
建立分支git branchsvn copy
切換分支git checkoutsvn switch
合併git mergesvn merge
建立標籤git tagsvn copy
更新git pull / git fetchsvn update
上傳到遠端git pushsvn commit
忽視檔案清單.gitignore.svnignore

進階

SVN 的 Git submodule / subtree

  • 顯示所有 svn:externals
    $ svn propget -R svn:externals
  • 變更 svn:externals
    1. $ svn pe svn:externals . --editor-cmd <editor (e.g. vim)>
    2. $ svn commit -m '<message>' <svn:externals 資料夾位置>
    3. $ svn update ,更新 svn:externals 資料

指定 Checkout 的版本

$ svn checkout <repository>/@<commit number>


參考資料

  1. 連猴子都能懂的Git入門指南 - Git 和 Subversion的相比