git-svn协同工作

现在工作中已经离不了版本控制了,而作为两种目前比较流行的版本控制软件,SVN和GIT各有各的优势。SVN中小单位使用比较广泛,GIT作为分步式的版本控制更加能体现版本控制的独立性。在以往的工作中,我总是把它们分开来使用,因为现在不缺少git和svn的服务器,googlecode对两种版本控制都做了很好的支持。

但由于历史的原因,我还不能完全切换到GIT上工作,目前我们的项目大部分使用VISUAL SVN作为服务端,代码托管到WINDOWS服务器。在此之前我主要使用SVN客户端进行工作,但缺点显而易见,由于我们的SVN服务器是局域网,所以回家以后就不能再连到服务器,做的一些工作想做一个暂时性的保存是不可能的,如果能够整合GIT和SVN的各自优势,则就不会出现这些问题了。

而今天,最新版本的mysysgit和其外壳tortoisegit 已经完美支持git-svn和中文了,下面我说一下操作的步骤:

1、用git bash执行

git svn clone  https://svn-path/git

这句是针对visual svn的,因为大部分都是https协议的,又没有证书,如果不先用命令行你就没有办法选择和输入用户名密码,选择永久接受,并输入用户名密码,获取版本库

image

2、尽情使用git add, git commit ,git status, git log,然后git svn dcommit就可以了,期间你可以使用任何换基操作,最好不要跟原来的冲突,整合后再提交你的修改

3、tortoise git 的show log和diff相当好用,比命令行更加直观化,其blame可以让你看到整个文件的一生,让人有种时光穿梭的感觉

到此我才知道git提供换基与变基操作的真实含义,无论你在本地提交多少次,只要在dcommit前把这些合并一下,svn版本库里面就不会出现你合并前的操作记录,给别人看起来也更加清爽。

另外两个比较有用的设置,git bash虽然好用,但每次都要进行路径切换。可将git目录下的bin目录设置到path中,在工程目录按住shift右击,“在此处打开命令窗口”,就可以进行git操作了,如果ls会出现中文乱码,就直接用dir好了,这个保证不会有问题,使用git的相关命令也没问题,甚至你可以在任何地方使用vim编辑器了,多么酷的一个功能啊!

发表评论

邮箱地址不会被公开。