`
androider
  • 浏览: 734232 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

git-svn用法

 
阅读更多

* 检出一个已存在svn repository(类似于svn checkout)
我们可以通过git-svn clone命令完成这个操作: git-svn clone your_svn_repository_url

* 从中心服务器的svn repository获取最新更新
这个操作可以通过"git-svn rebase"完成。注意这里用的是rebase,而不是update。update命令对于通过git-svn检出的svn repostory的git版本库是不可用的。

* 查看提交历史日志
这个简单,使用"git-svn log",加上-v选项,还可以提供每次commit操作涉及的相关文件的详细信息。

* 将本地代码同步到Svn服务器
完成这一操作需要通过"git-svn dcommit"命令。这个命令会将你在本地使用git commit提交到本地代码库的所有更改逐一提交到svn库中。加上-n选项,则该命令不会真正执行commit到svn的操作,而是会显示会有哪些本地变动将被commit到svn服务器。git-svn dcommit似乎不能单独提交某个本地版本的修改,而是一次批量提交所有与svn中心版本库的差异。

下面是一个git-svn的一般使用流程:
1、git-svn clone your_svn_repository;
2、修改本地代码,使用git add/commit将修改提交到本地git库;
3、定期使用git-svn rebase获取中心svn repository的更新;
4、使用git-svn dcommit命令将本地git库的修改同步到中心svn库。

使用git-svn处理代码冲突的步骤有些繁琐,不过瑕不掩瑜吧。这里用一个小例子来说明一下。

假设某svn中心库上的某个项目foo中只有一个源码文件foo.c:
* 我在使用git-svn clone检出版本时,foo.c当时只有一个commit版本信息:"svn v1";
* clone出来后,我在本地git库中修改foo.c,并通过git commit提交到本地git库中,版本为"git v1";
* 不过与此同时另外一个同事也在修改foo.c这个文件,并已经将他的修改提交到了svn库中,版本为"svn v2";
* 此时我使用git-svn dcommit尝试提交我的改动,git-svn提示我:
  Committing to svn://10.10.1.1:80/foo ...
  M foo.c
  事务过时: 过期: ”foo/foo.c“在事务“260-1” at /usr/lib/git-core/git-svn line 570
* 使用git-svn rebase获取svn服务器上的最新foo.c,导致与foo.c冲突,不过此时svn版本信息已经添加到本地git库中(通过git log可以查看),git-svn rebase提示你在解决foo.c的冲突后,运行git rebase --continue完成rebase操作;
* 打开foo.c,修改代码,解决冲突;
* 执行git rebase --continue,git提示我:
    You must edit all merge conflicts and then
    mark them as resolved using git add
* 执行git add foo.c,告知git已完成冲突解决;
* 再次执行git rebase --continue,提示"Applying: git v1",此时"git v1"版本又一次成功加入本地版本库,你可通过git log查看;
* 执行git-svn dcommit将foo.c的改动同步到svn中心库,到此算是完成一次冲突解决。

分享到:
评论

相关推荐

    git-svn使用用法

    git-svn 的用法 介绍git-svn 的用法 和使用场景

    git-svn-helpers:使 git-svn 变得简单的命令行工具

    基本用法执行摘要: > cd path/to/svn/repo> gitify init执行本地更改并将它们提交到 git。 准备好推送您的更改时: > gitify push要使用上游更改更新您的工作目录: > gitify updategitify 会注意保持 git 和 svn ...

    git-tfs:一个GitTFS桥,类似于git-svn

    介绍是TFS(Team Foundation Server)和git之间的双向桥梁,类似于git-svn。 它将TFS提交提取到git存储库中,并允许您将更新推回TFS。 。 请参阅以了解详细信息并下载。 如果遇到问题,请查看页面。 在这样做之前,...

    git-to-wordpress-plugin-svn-pusher

    Git 到 wordpress 插件 svn pusher 轻松地将您的 wordpress 插件从 git repo 推送到 svn。 记住readme.txt和your_plugin.php ##用法 1.Clone this project 2.Clone your plugin git repo into `/git` folder 3...

    Eclipse安装SVN-CC-GIT-VSS-CVS详细使用说明书

    安装Subclipse的最好方法是使用Eclipse Update Manager。在Eclipse 3.x中,它位于Help -> Software Updates -> Find and Install...菜单下。 选择搜索要安装的新功能部件,点击新建远程站点,弹出图1,在URl输入框...

    Git2Svn:代码git到svn的单向同步

    git2svn提供git到svn的单向同步,基于代码,但做了一些改进,支持更多参数,bash同步脚本使用方法: ./git2svn.sh [-r git_revision] [-t type] [-u svn_user] [-p svn_password] [-l locale] <local> 其中:type参数...

    wp-plugin-in-github:我用来管理和将WordPress插件从github部署到svn的shell脚本的集合

    clone-from-svn-to-git.sh-使用此脚本将WordPress插件从SVN克隆到git / github deploy-plugin.sh-使用此脚本将WordPress插件更新从git / github推送到SVN readme-converter.sh-使用此脚本在Github markdown和...

    deploy-git-wordpress-org:一个简单的脚本,可让您将 Git 存储库部署到 WordPress.org SVN。 此版本接受插件文件和 WordPress.org 用户名的参数

    用法用法: sh deploy.wordpress.org.sh [plugin_file_with_header.php] [WordPress.org Username] [Update Readme Only: true|false]即: sh deploy.wordpress.org.sh index.php aubreypwd false下载脚本(右键另存...

    WPRelease:一个简单的WordPress GIT->SVN部署工具

    WPRelease欢迎来到我们的 GitHub 存储库WPRelease 是一个简单的 Git 到 SVN 部署工具,适用于 WordPress 开发人员。 我们的意思是,它假定您可能想要使用的唯一 Subversion 存储库是 WordPress.org 插件存储库。 它...

    蔡氏电路matlab仿真代码-Git-basic:使用命令行记录您的git操作

    使用命令行记录您的git操作 1.什么是Git? 您的团队有一个项目,团队中的每个成员都必须从事该项目。 就像这个人在编辑一些东西,添加几行代码。 手动地,当A先生进行一些修改时,必须通知整个小组。 A先生将把新...

    Git权威指南PDF完整版

    26.1 使用 git-svn 的一般流程/ 380 26.2 git-svn 的奥秘/ 386 26.2.1 Git 库配置文件的扩展及分支映射/ 387 26.2.2 Git工作分支和 Subversion 如何对应/ 388 26.2.3 其他辅助文件/ 390 26.3 多样的 git-svn 克隆...

    svn2git:基于快速导入的转换器,用于svn repo到git repos

    svn-all-fast-export aka svn2git 该项目包含将svn信息库(服务器端,而不是签出)转换为一个或多个git信息库所需的所有工具。 这是用于将KDE的Subversion转换为多个Git存储库的工具。 您可以在找到更多描述和用法...

    版本控制Svn&Git;整套视频教学

    svn与git代码控制的视频教学,录制的视频讲的很详细,也有些高级用法,适合开发人员使用。

    MyEclipse10的SVN/Git插件及配置

    (1)MyEclipse10.7.1 (32+64)下载和安装 (2)如何打开MyEclipse10的JS、HTML、Java等...? (3)对于MyEclipse10导出War包报错问题的解决方法 (4)关于MyEclipse插件git和svn的扩展 若没有积分的朋友,可私聊QQ 1355043929

    node-svn-diff-parser:SVN差异解析器

    用法 git diff [file|dir] > filename.diff diff2html path/to/filename.diff > filename.html 节点 var diffParser = require ( "svn-diff-parser" ) ; var diffFiles = diffParser . parse ( diffString ) ; ...

    subgeezer:Subgeezer 是一个命令行工具,可以将 SVN 仓库转换为 Git

    Subgeezer 是一个命令行工具,可以将 SVN 存储库转换为 Git。 除了转换存储库之外,您还可以提供-n选项,它会提示您将 SVN username转换为 Git Forename Surname 格式。 用法 subgeezer [-hnbr] svn_root_url git_...

    Git版本管理用法详解

    本文从Git的历史,安装与配置开始介绍,全文包含基本用法、SVN转Git、协同开发、在线Web浏览等诸多方面,最重要的是,本文还详细列举了一些源自作者多年社区协作经验的技巧。文章最后给出了项目管理相关的一些开源...

    svn与git结合,实现版本管理

    本文来自csdn,文章主要介绍了在ubuntu14.04环境下git的基本使用方法,一个分支模型中,各个操作的流程和其对于开发过程的意义等。1、实际使用的是svn与git结合,没有单纯的使用svn或git,当然svn和git都是一套完整...

    Git Community Book(中文版)

    欢迎使用Git GIT对象模型 Git目录 与 工作目录 Git索引 2. 第一步 安装Git 安装与初始化 3. 基本用法 获得一个Git仓库 正常的工作流程 分支与合并@基础 查看历史 -Git日志 比较提交 - Git Diff 分布式的工作...

    Git基础用法

    Git基础用法 1 一、 Git是什么 1 二、 SVN与Git的最主要的区别 1 三、 安装Git 2 1、 Windows下安装git 2 2、 mac下安装git 2 3、 linux下安装git 3 4、 安装成功后设置 3 四、 Git基础操作 4 1、 创建版本库 4 2、 ...

Global site tag (gtag.js) - Google Analytics