用git在svn代碼庫上開發
此頁由 Linux Wiki用戶Chenxing 於 2012年1月20日 (星期五) 10:05 的最後更改。
從 Linux Wiki
提示:此文已超过 12 年(4691 天)未更新,如发现内容过时或有误,欢迎改进:)
git在功能上比svn強大不少,但目前很多版本庫仍在使用svn。得益於git-svn,我們可以把遠程的svn代碼庫複製到本地,從而實在在本地使用git開發,並通過svn與遠程代碼庫交互。
目錄 |
初始化代碼庫
最簡單的辦法是將整個SVN代碼庫同步到本地(包括所有歷史記錄,可能會非常慢):
git svn clone SVN代码库路径 -s
如果想只同步最近的更新,可以指定-r參數,如:
git svn clone SVN代码库路径 -r100:HEAD -s
會從相應的revision(此例是r100)同步到最新版本(HEAD)。[1]
上面的-s參數表示只同步trunk,對於某些非標準的代碼庫,不要加-s。
如果是Google Code的SVN代碼庫,可使用如此方法[2]:
git svn clone --username your-name -s https://your-project.googlecode.com/svn
同步後建議調用git gc (garbage collection)清理一下垃圾:
git gc
獲取最新代碼
如果想獲取代碼庫的最新代碼(對應svn update),只需:
git svn rebase
如果有衝突,處理方法與git版本庫類似。
開發
開發時就如同一個普通的git,可以使用git的各種feature,如本地commit,方便地創建多個branch等。具體可參見相關資料[3]
提交代碼
將代碼提交到svn,就只能保持版本的線性性了,此時建議先更新本地代碼庫:
git fetch git svn rebase
同時也建議整理一下本地的commit
git rebase -i
都準備好後,就可以提交了:
git svn dcommit
參考
- ↑ (StackOverflow) How to git-svn clone the last n revisions from a Subversion repository?
- ↑ Develop with Git on a Google Code Project
- ↑ 如何在svn系統中使用git
本文对您有帮助?分享给更多朋友!
反馈与讨论
发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。