最近项目组开始使用 Git 来作为源码管理。我今天就顺便把 Rafy 的源码也迁移到了 github 上,方便大家使用。这是项目的地址:https://github.com/zgynhqf/rafy,Git Clone 地址为:https://github.com/zgynhqf/Rafy.git

由于我个人也是第一次使用 Git 来做源码管理。本文主要是记录一下过程,及遇到的问题。

 

  • 在 VS 中如何使用 Git

在 VisualStudio 2013 中使用 Git 有两种方法:

一种方法是安装并使用扩展“Git Source Control Provider”。试用了一下,发现按钮并不齐全,许多功能都是放在 TortoiseGit 下拉列表中,非常不易用:

另外一个方法是使用内置的 Microsoft Git Provider。这种方法的界面跟 TFS 是一样的,使用 Team Explorer 来操作,不符合我原来用 AknSVN 的习惯,不过功能非常齐全,Commit、Push 等都有。最终还是选择了这个:

 

 

  • 在 Git 如何变换 Repository 的位置

当服务端 Repository 的地址变换时,在 SVN 中有 Relocate 命令可以直接使用。但是在 Git 中却没有这个命令。在 TortoiseGit 中,完成这个任务需要打开 Settings,修改以下配置:

 

  • 将 SVN 仓库转换到 Git 仓库

原来用的源码管理都是 SVN,这次转换到 Git,希望能够直接把 SVN 进行升级,这样就不会丢失历史的提交记录。而我需要转换两种类型的 SVN 仓库到 Git:

  1. 转换发布到 SourceForge 的 SVN 仓库到 GitHub.com
  2. 这种转换比较简单,GitHub 中有功能可以进行直接转换,祥见:https://help.github.com/articles/importing-from-subversion/

  3. 转换本地 SVN 仓库到本地 Git 仓库
  4. 这个转换比较复杂。过程中遇到的问题较多。

    主要是因为git-svn只支持通过网络连接(svn:// 或 http://之类)的方式来转换,所以本地的仓库转换,是不能直接使用 file:/// 协议访问的,而是还得安装一个 SVN 服务端进行发布。这一步我是使用 VisualSVN 进行发布的。

    发布完成后,使用 git svn clone 把所有内容复制下来。(这一步操作比较耗时)

    复制完成后,需要修改 .git 文件夹中的 config 文件。把后面的两个 SVN 服务端配置节,修改为上图中的 Git 服务端配置节,然后设置正确的 Git 服务端地址。

    最后,把整个本地记录全部 Push 到这个服务端中,就可以了。

    完成后,这个 Git Repository 中就有了原来的所有历史记录了:

 

SVN 转换到 Git,参考以下文章:

svn转换到git

版本库转换:hg->git->svn->git

SVN迁移到Git的过程(+ 一些技巧)

如何将 SVN 仓库转换为 Git 仓库

How to Convert Subversion Repo to Git

 

另外,下面是使用 Git 的帮助:

Git/SVN 常用命令》、《GitHub 帮助 - HelloWorld》。

发布 Rafy 源码到 GitHub的更多相关文章

  1. 发布VS源码

    发布VS源码步奏 先将Web.config设置修改一下   IP设置成点    文件名称设置成文件夹的名称,右键点击项目,点发布   勾选删除现有文件,点击发布 打开文件加  将文件解压成压缩包, 打 ...

  2. 还怕问源码?Github上神级Android三方源码解析手册,已有7.6 KStar

    或许对于许多Android开发者来说,所谓的Android工程师的工作"不过就是用XML实现设计师的美术图,用JSON解析服务器的数据,再把数据显示到界面上"就好了,源码什么的,看 ...

  3. Spring 源码从github导入源码到idea2016

    步骤 安装git或者github客户端 java环境JDK安装(必须是1.8) gradle下载安装(选择的最新版3.1) git clone github上spring源码 import导入proj ...

  4. 基于tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

    基于tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展 ...

  5. 基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

    基于python语言的tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的 ...

  6. 使用pjsip传输已经编码的视频,源码在github

    pjsip功能很强,做sip rtp语音通话库首选.在2.0之后,也支持视频.不过,它的视频功能缺省是从视频设备采集,然后进行编译,再发送出去的.假设,我们已经有了视频源,比如IP摄像机,不需要采集和 ...

  7. QuartzNet 远程管理持久化job 项目, 源码在Github..希望对大家有所帮助

    文章目录 为了方便大家去学习 QuartzNet 与 CrystalQuartz 更多信息请点击链接查看 简介 结构图 为了方便大家去学习 QuartzNet 与 CrystalQuartz 更多信息 ...

  8. C# 使用大漠插件, 源码在Github和码云 ..希望对大家有所帮助

    c# 使用大漠插件. 完成 类似 按键精灵的 功能. 方法 注释 正在慢慢的 完善中 目录 仓库 github 码云 准备 效果图 如何运行 1. 注册 大漠dll 到com (资源在 源码 DLL ...

  9. 技术干货 | 源码解析 Github 上 14.1k Star 的 RocketMQ

    前言 Apache RocketMQ 作为广为人知的开源消息中间件,诞生于阿里巴巴,于 2016 年捐赠给了 Apache.从 RocketMQ 4.0 到如今最新的 v4.7.1,不论是在阿里巴巴内 ...

随机推荐

  1. 在.NET Core中遭遇循环依赖问题"A circular dependency was detected"

    今天在将一个项目迁移至ASP.NET Core的过程中遭遇一个循环依赖问题,错误信息如下: A circular dependency was detected for the service of ...

  2. ABP理论学习之仓储

    返回总目录 本篇目录 IRepository接口 查询 插入 更新 删除 其他 关于异步方法 仓储实现 管理数据库连接 仓储的生命周期 仓储最佳实践 Martin Fowler对仓储的定义 位于领域层 ...

  3. Understand Lambda Expressions in 3 minutes(翻译)

    本文翻译自CodeProject上的一篇简单解释Lambda表达式的文章,适合新手理解.译文后面我补充了一点对Lambda表达式的说明. 1.什么是Lambda表达式? Lambda表达式是一种匿名方 ...

  4. Mac下设置Android源代码编译环境

    在Mac下编译Android最麻烦的就是设置Android的编译环境了,做完这一步基本上剩下的就是近乎傻瓜式的操作了.说起来也简单就三步,设置大小写敏感的文件系统.安装编译工具.设置文件系统同时能打开 ...

  5. 搭建域服务器和DNS

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/域控制器 概述 因为很多高性能高可用方案都会在域环境中组建,所以了解创建域的一些知识对搭建那些高可用方案很有必要. 环境:wind ...

  6. [ASP.NET MVC 小牛之路]16 - Model 验证

    上一篇博文 [ASP.NET MVC 小牛之路]15 - Model Binding 中讲了MVC在Model Binding过程中如何根据用户提交HTTP请求数据创建Model对象.在实际的项目中, ...

  7. 模拟淘宝购物,运用cookie,记录登录账号信息,并且记住购物车内所选的商品

    1.登录界面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...

  8. Docker学习笔记

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  9. Js replace() 学习笔记

    最近捣鼓着学习Js,发现replace()真的很有用,替换功能杠杠的棒. 接下来看看我遇到的问题: 有两个随机给出的字符串,字符串1'xxxxxx',字符串2'====T'(这两个用作示例,其他为随机 ...

  10. Css概要与选择器,刻度单位

    目录 一.CSS3概要 1.1.特点 1.2.效果演示 1.3.帮助文档与学习 二.选择器 1.1.基础的选择器 1.2.组合选择器 1.3.属性选择器 1.4.伪类 1.5.伪元素 三.特殊性(优先 ...