首页
学习
活动
专区
圈层
工具
发布

2018-07-20 如何将 SVN 迁移至 GIT 并保留所有历史记录

如果你和你的小伙伴们正在考虑,从 SVN 迁移至 GIT,如果你们的 SVN 仓库已经够庞大(1W+ commits)和复杂(后面复杂情况详解),又想在迁移之后保留所有更改记录,这篇文章也许正是你要找的...SubGit JRE Subversion SubGit 是个提供从 SVN 安全迁移至 GIT 的商业工具软件,这里主要是用到它将 SVN 提交历史翻译为 GIT 提交这一免费功能。...仓库创建时没有使用标准结构(trunk,branchs,tags),后期修改为标准结构,比如: /svn/project_name/ /svn/project_name/trunk …),想保留这些提交历史记录...由于 GIT 的学习有一定曲线,如果小伙伴开发团队比较大(20+ 人),小伙伴们对 GIT 接受程度肯定有所差异,为了减少迁移至 GIT 对大伙的影响,可以考虑采用 SubGit 提供的方案,同时支持...SVN 和 GIT 双向提交。

1.5K60

使用Git来管理源代码

所以版本控制工具可以看做整个编码工作的基础,如果没有版本控制来统一代码库,那么对于复杂且参与人数较多的项目是难以完成的,同时如果没有统一的代码库基础,那么如持续集成、发布等工作将无法开展。   ...,基于C/S模式,CVS将代码存储在服务器上,通过客户端来获取、提交代码及其它操作。   ...使用Git来管理源代码 Git简介   Git是一个基于文件快照的分布式版本控制工具,对于文件快照来说它体现在当提交更新时,它会对所有文件制作一个快照,在快照中对于没变的文件以链接的方式指向之前存储的文件...在My Blog的根目录下打开Git Bash,使用git init创建一个本地仓库:   同时该目录下将生成一个.git隐藏目录。   2....文件的跟踪、修改、提交   将新的文件添加到git中管理涉及到的相关操作: 跟踪新文件:(git add 文件名 或 git add -a 后者添加除被忽略以外的所有文件) 提交文件:(git commit

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git 企业开发者教程

    – 我需要别人分支上的几个改动,怎么才能只获取这几个改动而不合并所有代码? – 如何比较文件,分支?如何回退代码? – 我们的代码库很大,如何才能正确切换到Git?...为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 初始化Git存储库(Repo) 起步 1 – 创建分支和保存代码 起步 2 – 了解Git历史记录 起步 3 – 拉取请求...帮助你将这个最棒的版本控制工具在你复杂的企业开发场景中使用起来。同时我们也将探讨如何在大规模团队中引入git的一些策略性思考。...在VSTS/TFS上创建Git仓库 迁移已有代码库到Git仓库,如:SVN,TFVC Git服务器的权限管理 Git分库规则 大规模团队的Git配置管理流程 使用Git支持敏捷/瀑布式开发流程 Git与持续交付...当然,如果你不使用VSTS/TFS也完全不必担心,这个教程中的大多数内容同时适用于任何Git服务器,包括GitHub, GitLab, BitBucket等大家常用的环境。

    2.3K100

    资讯 | 阿尔法狗宣布退役;微软将所有的Windows代码库迁移到Git;阿里巴巴百联新零售合作

    3 微软将所有的Windows代码库迁移到Git 微软已经将他们的Windows代码库从Source Depot迁移到GVFS上。...业内人士据此分析称,线上线下两大全业态巨头之间的新零售融合,将率先从商超业态展开。...然后使用另一种神经网络将这些意思转译成另外一门语言。...9 Git在版本2.13中继续改进了安全性和UI Git的最新版本做了很多改进,旨在改进其用户界面,同时也修复了两个重要的漏洞。...在安全性方面,Git 2.13版本还修复了一个漏洞,这个漏洞会影响到所有使用git shell的Git托管服务器,它使攻击者可以在远程服务器上静默运行shell命令。

    91620

    g4e基础篇#3 Git安装与配置

    最后一定要选择启用Git Credential Manger这个选项,我们在操作远程Git服务器时经常需要输入用户名和密码,选择这个以后我们可以将身份信息使用Windows凭据管理器进行存储,不必每次都输入了...git config user.name "你的名字"git config user.email "你的邮件地址" 注:如果你使用的是企业提供的TFS服务器,请将以上信息与企业AD域中的邮件地址统一,因为这些信息会随着你的提交进入...TFS服务器的Git历史记录,保持这些信息一致有助于其他开发人员通过历史记录了解你的提交记录。...VSTS提供5人以下团队的免费账号,不限制项目和Git私有存储库数量以及大小,可以通过以下地址注册。...http://cmder.net/ 小结 到这里,我们已经做好了开始使用Git的一切准备,在下一章中我们将开始使用Git实际进行开发工作。

    2.8K100

    发布 Rafy 源码到 GitHub

    最近项目组开始使用 Git 来作为源码管理。我今天就顺便把 Rafy 的源码也迁移到了 github 上,方便大家使用。...将 SVN 仓库转换到 Git 仓库 原来用的源码管理都是 SVN,这次转换到 Git,希望能够直接把 SVN 进行升级,这样就不会丢失历史的提交记录。...发布完成后,使用 git svn clone 把所有内容复制下来。(这一步操作比较耗时) 复制完成后,需要修改 .git 文件夹中的 config 文件。...完成后,这个 Git Repository 中就有了原来的所有历史记录了: ?...SVN 转换到 Git,参考以下文章: 《svn转换到git》 《版本库转换:hg->git->svn->git》 《SVN迁移到Git的过程(+ 一些技巧)》 《如何将 SVN 仓库转换为 Git 仓库

    1.2K60

    Rails存储库从SVN转向Git

    在Ruby on Rails 2.1版本发布的前夕,Rails开发团队也准备将代码的存储库从Subversion迁移到Git之上。...在Ruby on Rails的官方博客里,DHH写到: 我们准备将Rails开发的代码存储库从Subversion迁移到Git之上,迁移过程将会在近期内完成。...在版本存储库迁移的同时,我们也会将问题跟踪系统转移到基于Rails开发的Lighthouse应用之上,于是到目前为止,我们的存储库和问题跟踪系统都是使用的Rails应用,这对我们是一个很好的鼓励。...在代码存储库迁移之后,我们将冻结现有Subversion的存储库以及Trac问题跟踪系统。这两个系统都会保留较长一段时 间,但是我们并不建议使用者再去访问它们。...Git帮助开发者保留历史版本在本地的全部记录,同时大型项目管理方面,效率比一般的版本控制工具都要高。

    2K90

    一篇文章带你了解热门版本控制系统——Git

    但是并非所有人的开发版本都会被保留使用,那些被淘汰的版本就会被像Git这样的软件所保存传送到相关仓库中 版本控制的优势: 实现跨区域多人协同开发 追踪和记载一个或者多个文件的历史记录 组织和保护你的源代码和文档...,在迭代后将原版本的项目原件保留下来 记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,如RCS。...协同开发者从服务器上同步更新或上传自己的修改,如SVN 优缺点: 集中版本控制将所有资料保存在一台电脑上,相当于单机存储,保密性较高;但一旦计算机出现损坏,项目备份丢失,无法找回 分布式版本控制 概念...资源库:第三层,本地仓库,安全存放数据的位置,保存有你提交到所有版本的数据。...)] 2、将需要进行版本管理的文件放入暂存区域 [Git状态:已暂存(staged)] 3、将暂存区域的文件提交到git仓库 [Git状态:已提交(committed)] Git项目搭建 接下来我们开始

    87510

    Git 基础操作

    # 基础 # Git 的三种状态 已提交 (committed) - 数据已经安全地保存在本地数据库中 已修改 (modified) - 修改了文件,但还没有保存到数据库 已暂存 (staged) -...提交更新找到暂存区的文件,将快照永久性存储到 Git 目录 # 配置 # 变量存储位置 /etc/gitconfig 文件:系统上每一个用户及其仓库的通用配置, # 查看所有配置以及她们所在的文件 git...可以将这想象成“改写历史” git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样 revert git reset 很方便,但是这种“改写历史”的方法对远程分支是无效的 为了撤销更改并分享给别人...的 GUI tools,特别是 commit 比较频繁时,看到分支很杂乱 rebase 特点:会合并之前的 commit 历史 优点:得到更简洁的项目历史,去掉了 merge commit, 所有提交都在一条线上...的方式来撤销 commit,这样能保留之前的 commit 历史,比较安全。

    45810

    20个你(可能)不知道的Git命令

    Git Web 运行 git instaweb 可以立即在 gitweb 中浏览你的工作存储库。...浏览和浏览修订版,检查差异、文件内容和元数据 直观地查看提交日志、分支、目录、文件历史和附件数据 生成提交和版本库活动日志的RSS或Atom feeds 搜索提交、文件、更改和差异 要打开它,只需在你的版本库中运行...使用 git archive 将包括所有的 repo 历史,所以它可以很容易地被提取回它的原始形式。该命令还包括很多额外的选项,所以你可以准确地定制哪些文件包括在归档中,哪些不包括。...这就是大文件存储的作用--它使你能够将这些大的资产存储在其他地方,同时保持它们在git中的可追踪性,并保持相同的访问控制/权限。LFS的工作原理是将这些大文件替换成文本指针,在git中进行跟踪。...Git Tag 使用git tag标记你的版本库历史中的特定点 能够标记版本库历史上特定的、重要的点通常很有用,最常用来表示版本。

    1.1K40

    使用Git进行源码管理 —— 在VisualStudio中使用Git

    将项目添加到GIT源码管理 将项目添加到GIT源码管理和通过TFS管理方式一样,直接在解决方案的右键菜单中点取即可。...和之前不同的是,此时会出现一个对话框会让你选择使用传统的TFS方式还是GIT方式来管理,这里选择Git。...你也可以自己安装其它的工具,第三方工具和系统自带的Git不冲突,可以同时使用。 提交更改 从团队管理器中我们可以看到,对于Git的操作分包括更改、分支、提交三种。...提交完成后,额可以到分支页面查看所有提交的历史记录。    ...操作方式如下:首先在团队管理器窗口中选择"连接到团队项目",选择" 克隆"链接,输入远程Git库的URL和本地路径,点击克隆按钮即可。

    82800

    BFG Repo-Cleaner - 快速清除Git提交历史中的特定文件

    的另一种选择 BFG是git-filter-branch之外的一种更简单、更快的方法,可以清除Git存储库历史中的不良数据: 删除 大文件 删除 密码、凭证 和其他 私人数据 git-filter-branch...这意味着您的普通文件将不可见,但它是存储库Git数据库的完整副本,此时您应该备份它,以确保不会丢失任何东西。...检查存储库以确保您的历史记录已更新,然后使用标准的git gc命令去除不需要的脏数据, git现在将这些脏数据视为多余的需求: $ cd some-big-repo.git $ git reflog expire...无论它们在您的存储库中的任何地方: $ bfg --replace-text passwords.txt my-repo.git 删除Git中所有名为'.git'的文件夹或文件—保留的文件名。...请注意,尽管这些受保护的提交中的文件不会被更改,但是当这些提交从早期的脏提交继续进行时,它们的提交ids 将 更改,以反映更改的历史—只有文件系统树的SHA-1 id 将保持不变。 更快...

    3.5K40

    开发者应该知道的 50 条最实用的 Git 命令

    此更改历史记录保存在本地机器上,在出现问题时,您可以轻松地恢复到项目的前一个版本。 Git使协作变得容易。团队中的每个人都可以在自己的本地机器上保留正在开发的存储库的完整备份。...git add fil* 如何在Git中检查存储库的状态: 该命令将显示当前存储库的状态,包括暂存、未暂存和未跟踪的文件。...git commit -a -m"your commit message here" 如何查看Git中的提交历史: 这个命令显示当前存储库的提交历史: git log 如何查看你的提交历史记录,包括Git...同时, --oneline将把提交消息限制为一行。 git log --graph --oneline 如何在Git中显示提交日志的所有分支: 执行与上面命令相同的操作,但适用于所有分支。...该命令将远程存储库添加到本地存储库(只需用远程repo URL替换https://repo_here)。

    2.7K10

    还不了解Git分布式版本控制器?本文将带你全面了解并掌握

    3.1 Git 的必要配置 Git所有的配置文件都存储在了本地 命令 说明 git config – system 查看git系统的配置 git config – global 全局配置 git config...提交项目: push;将项目提交至远程git仓库 commit;将项目提交至本地仓库 add;将项目从本地工作空间添加到暂存区 4.3.2 本地仓库搭建 命令 说明 git init 初始化工作空间...# 在当前目录中初始化一个git代码库 git init 执行后可以看到,仅仅在项目目录中多出了一个.git目录,关于版本等的所有信息都在这个目录里面 4.3.2.2 克隆全程仓库 克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地...Git指令大全 9.1 仓库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史...# 停止追踪指定文件,但该文件会保留在工作区 $ git rm --cached [file] # 改名文件,并且将这个改名放入暂存区 $ git mv [file-original] [file-renamed

    22810

    TFS2018环境搭建一硬件要求

    .建议将TFS安装到服务器上,除非TFS用于个人使用....Server Core去除了一些不常用的Windows Server的功能,只保留了核心的服务器功能.但是,这个安装选项只适用于TFS 2017 and TFS 2018,早期的版本如Windows Server...(2)、除了TFS常规的需求外,TFS中的仓储库大小,也会影响硬件配置,应为GVFS代理还需要一个快速、大的磁盘来高效地在存储库上运行。...GVFS的硬件需求应该基于存储库的大小.建议使用固态硬盘,I/O更快,大小更具存储库的大小选择.例如,假设存储库的主服务器端有50 GB,历史记录有200 GB。...关于服务器的配置一单服务部署 这里只介绍单服务部署,如果团队规模很大,参考微软官方文档 一台单机,有一个双核处理器,4GB内存和一个快速硬盘驱动器.此配置应支持多达250个核心源代码管理(TF、VC或Git

    4.1K30

    2020-12-13Git学习

    在没有版本的情况下,我们可以很容易地将项目恢复到以前的状态,控制系统只能不断地在不同的文件夹中存储整个项目的副本–缺点:速度非常慢,且无法对项目扩展(无法共享以及共同同时更改) 版本控制系统类型 1....eg:SVN和TFS 下面是一个简单的工作模型图: 2. 分布式系统 每个团队成员在他们的机器上都有一个项目的副本,上面有他们的历史记录,因此我们可以在机器上本地保存项目的快照。...(本地仓库)的特殊数据库中记录代码随时间的变化,eg:项目历史,谁做了改变) 三、 git的并行开发流程 自制,如需做基础行修改,可私 四、git分布式版本控制工作原理 1)Git 工作原理图...git commit -m(“注释”)将文件提交到仓库 4)版本回退 git log 查看提交历史,确认回退的历史版本 git reflog 查看命令历史,确定回退的未来版本 git reset...reset --hard commitid 提交后使用版本回退 6)删除文件 rmLinux删除实际文件 git rm版本库中删除该文件 git checkout –从版本库恢复文件 7)添加远程库

    54230

    如何进行版本回退

    版本回退:反方向的钟~~ Git 提供了强大的版本回退(或称为“重置”)功能,让你能够将项目状态恢复到历史上的任意一个提交点。执行版本回退的命令是 git reset。...--soft: 版本库: 回退到指定的历史版本(移动分支指针和 HEAD)。 暂存区: 不变。保留回退前暂存区的内容。 工作区: 不变。保留回退前工作区的内容。...效果: 相当于撤销了回退目标版本之后的所有 commit 操作,但保留了这些修改在暂存区和工作区。你可以重新 commit 这些改动(比如合并提交或修改提交信息)。...is now at 14c12c3 add version2 执行 git reset --hard 后,Git 会将当前分支指针和 HEAD 都移到目标版本 (version2),同时强行把暂存区和工作区的内容都替换成目标版本时的文件内容...Git 的所有历史版本(Commit 对象)都还在对象库里。

    54710

    从 SVN 到 Git 开发实用命令总结

    常用操作如下(图片来源于网络): Git-SVN # 下载一个 SVN 项目和它的整个代码历史,并初始化为 Git 代码库 $ git svn clone -s [repository] # 查看当前版本库情况...# 在当前目录新建一个Git代码库 $ git init # 下载一个项目和它的整个代码历史 [Git only] $ git clone [url] 五、配置 # 列举所有配置 $ git config...# 停止追踪指定文件,但该文件会保留在工作区 $ git rm --cached [file] # 改名文件,并且将这个改名放入暂存区 $ git mv [file-original] [file-renamed... commit $ git revert [commit] # 将未提交的变化放在储藏区 $ git stash # 将储藏区的内容恢复到当前工作区 $ git stash pop 十一、查询 # ...# 查看版本库修改记录 $ git log # 查看某人提交记录 $ git log --author=someone # 查看某个文件的历史具体修改内容 $ git log -p [file]

    1.2K51
    领券