用git在svn代码库上开发
此页由Linux Wiki用户Chenxing于2012年1月20日 (星期五) 10:05的最后更改。
出自Linux Wiki
提示:此文已超过 12 年(4721 天)未更新,如发现内容过时或有误,欢迎改进:)
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
本文对您有帮助?分享给更多朋友!
反馈与讨论
发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。