許多團隊正處於從 SVN 遷移至 Git 的過渡期,或需長期並行使用兩套版控系統。git svn 提供強大的雙向橋接功能,讓 Git 使用者能透明地與 SVN 倉庫互動。本文詳細說明從作者映射、克隆、同步到日常操作的完整流程。

git svn clone 取得 SVN 歷史並轉為 Git 倉庫git svn fetch/rebase/dcommit 雙向同步# 從 SVN log 擷取所有提交者
svn log --xml | grep "^" | sort -u | \
awk -F'' '{print $2}' | awk -F' ' '{print $1}' > user.txt
編輯 user.txt 為以下格式:
schacon = Scott Chacon
selse = Someo Nelse
git svn clone https://example.com/path/to/project-x/trunk \
--authors-file=users.txt project-x
--authors-file:指定作者映射檔project-x:本地目錄名稱--no-metadata 可不保留 SVN 中繼資料;共存模式請勿加此參數。| 指令 | 用途 |
|---|---|
git svn fetch |
從 SVN 抓取最新變更到本地 Git 遠端追蹤分支 |
git svn rebase |
將本地提交變基到最新 SVN 狀態(類似 git pull --rebase) |
git svn dcommit |
將本地 Git 提交推送回 SVN(每個 Git commit 產生一個 SVN revision) |
git svn log |
顯示 SVN 風格的提交歷史 |
git branch -r |
檢視 SVN 遠端分支(如 remotes/git-svn) |
dcommit 推回 SVN trunk,避免雙向衝突。git rebase -i 整理為邏輯完整的提交。--stdlayout 或分別指定 -T/-b/-t 參數。善用 git svn,即可在享受 Git 本地分支、離線提交、重構歷史等優勢的同時,無縫對接既有 SVN 基礎設施。
/etc/group 群組管理檔案解析:欄位含義、GID、成員列表、gshadow 加密、主群組與附加群組
Linux ZoneMinder 視頻監控系統部署全流程:LAMP 環境到攝像頭接入
CentOS 無法使用 scp 指令?安裝 openssh-clients 即可解決
Linux whereis 指令精通:快速定位二進制、原始碼與手冊頁
CentOS 安裝 VNC 後報錯 "Could not start Xvnc" 解決方案
Linux 偵測 DVD 燒錄機裝置名稱與寫入速度:dmesg、lsscsi、/proc、wodim、dvd+rw-mediainfo 五法對比