2018-12-07 · Tools

使用 Git 管理 SVN

今天新服务的技术选型中讨论到代码的版本控制时,我推荐项目使用 Git 而放弃老系统使用的 SVN 。

你以为很想下图一样,错!本文并不是要讲述什么 Git 和 SVN 的孰优孰劣。

git-vs-svn

由于本人是先会使用 Git 然后才在工作中使用 SVN ,所以对于偏爱来说,肯定是 Git。而 Git 内置的 git-svn 功能就很好的解决了我的问题,不知道是不是你也需要呢。下面主要讲述如何使用 Git 来管理 SVN。更具体的使用方式请访问 Pro-Git-Book

仓库 clone

git svn clone file:///tmp/test-svn -T trunk -b branches -t tags

git svn clonegit svn initgit svn fetch 两个命令的组合。

-T trunk -b branches -t tags 分别对应 SVN 的主干、分支和标签。如果你的项目命名规范的话可以使用 -s 来代替。

提交代码

有了上面的 clone 现在你可以像使用 git 一样进行 local repository 操作了。

git add .

git commit -am 'commit message'

提交回 SVN

当你想将代码 push 到远程的时候,需要使用如下命令

git svn dcommit

更新代码

协同工作时,还需要将别人的代码进行 update 。

git svn rebase

查看服务器信息

当然还有对于分支的操作,但是我并不建议使用。最后可以查看 SVN 服务器的信息

git svn info

Log & Ignore

对于日志的可以使用图形显示的 gitk 命令。

项目中把不想提交服务器的代码使用 .gitignore 文件进行正则匹配,使用过 Git 应该都知道。可以使用如下命令将 svn 中的 ignore 导出到 .gitignore 文件中

git svn create-ignore

或者是使用

git svn show-ignore > .git/info/exclude