如何在svn系统中使用git
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在svn系统中使用git相关的知识,希望对你有一定的参考价值。
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。也就是说自己机器上有一个git仓库。
这和svn是不同的,svn是没有本地的仓库的。
所以git是先提交到本地仓库,然后推送到服务器。而svn是直接提交到服务器。
这里说一下几个含义:
拉取:将服务器中git仓库的数据拉取到本地git仓库,同时修改(更新)当前分支的文件
获取:仅仅将服务器中git仓库的数据拉取到本地git仓库
提交:将修改的文件提交到本地git仓库。
推送:将本地git仓库上的数据推送到服务器。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
git和svn的一点不同在于svn是通过目录结构来区分不同的分支的。而git你可以点击切换/检出 来切换不同的分支。
在svn上右键点击Repository Browser可以看见整个工程的目录结构
在git上可以点击版本分支图查看整个工程的分支解构。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
git分支保护:自己并没有权限推送到当前分支:
1自己创建一个分支,
2将自己创建的分支推送上去,
3登录git,发送Merge Requests(合并分支的请求)给相关人员。
4通知相关人员,并由相关人员将你的代码合并到主分支 参考技术A 如果正在使用svn,打算换到git,又暂时不想放弃已有的svn代码库,可以选择git-svn。说一说我自己从svn到git的经验吧。开始安装最新版本的git,从git 1[color] diff = auto status = auto branch = auto[alias] st = status rb = svn rebase ci = commit -a co = checkout[user]部分标示出使用者的身份,你提交的代码会自动引用这一身份信息。[color]设置命令输出的颜色。[alias]部分可以简化一些常用命令,比如在这里将git status简化为git st。初始化代码库首先用git-svn来初始化本地的代码库(repository)git svn clone -s svn-repository-urlsvn-repository-url部分使用svn代码库的url。如果要从trunk目录或者某个branch目录里check out,要把-s换成-T、-b等选项。具体参看man git-svn。这个命令时间比较长,因为需要同步所有的提交历史,还好只此一次,以后不会这么慢了。做完这一步,在本地就有了一个完整的代码库,包括所有commit的历史和log,已经可以开始用它来进行开发工作了。不过,在开始开发之前,最好先做一次垃圾搜集:git gc它对代码库的信息进行垃圾搜集和压缩,最明显的作用就是减小磁盘占用空间。第一次做效果尤其明显。你可以检查一下代码库的状态:git status现在应该在一个叫”master”的分支(branch)上。用这个命令来显示出所有的分支(branch):git branch -amaster前有一个*号,代表你现在所处的分支,另外还有一个分支叫trunk,它是一个远程分支(remote branch),对应的是远程svn代码库。master实际上是trunk的一个本地分支。接下来,需要配置忽略文件,让git忽略一些目录中不希望加入代码库的文件,类似svn propset svn:ignore。全局有效的忽略文件列表可以添加在./.git/info/exclude文件中。比如我需要忽略所有vi产生的swp文件:.*.swp对于和目录有关的忽略文件设置可以在该目录下创建.gitignore,然后加入需要忽略的内容,比如我希望忽略根目录下的log,tmp等目录,可以直接在根目录下的.gitignore中加入:logtmp
以上是关于如何在svn系统中使用git的主要内容,如果未能解决你的问题,请参考以下文章