从Svn到Git,5分钟迁移学习
Posted 医影杂记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Svn到Git,5分钟迁移学习相关的知识,希望对你有一定的参考价值。
前言
SVN是集中式版本控制系统的杰出代表,兴起较早,很多企业和公司内部都在使用SVN进行代码管理。Git则是分布式版本控制系统的杰出代表,近年来,已经成为开源软件领域的不二之选。很多同学已经在使用SVN了,由于项目或学习需要,需要开始上手学习Git。这篇小文章就是希望能够帮助大家,利用SVN的经验,通过迁移学习,快速上手Git。不求理解,但求能上手干活。
注意:这篇文章都是基于Windows平台的。
关于Git,你需要知道的
Git是分布式的版本控制系统。
当你从一个Git仓库中下载代码时,你会直接得到所有的代码,包括所有分支,包括所有组件。这一点与SVN不同。SVN中可以通过代码权限设置,限定某个人只能下载某部分代码。
为每个新特性开发创建一个新的分支。
SVN中不轻易创建分支,但Git却鼓励或要求每个开发人员在开发每个新特性时都创建单独的分支。创建分支,能够让每个新特性的代码与其他代码区分开,同时避免不稳定代码过早提交到主干分支,影响主干的稳定性。
使用 Pull Request 将代码合并到 Master 分支。
Git的推荐首选原则,永远不要直接在主分支上进行改动。相反,如同上面第二条所讲的,你应该使用特性分支,并打开一个新的 Pull Request (PR),将特性分支代码与主分支代码合并。
安装两个软件
Git
TortoiseGit
了解几个常用操作
下载代码库
在需要下载代码的文件夹内,右键菜单,选择Git Clone命令。
这里,Git Clone对应SVN Checkout 。
更新代码
在前面下载好的代码文件夹内,右键菜单,选择Git Sync命令。
这里,Git Sync对应SVN Checkout。
创建分支
在代码文件夹内,右键,先选择TortoiseGit一级菜单,然后选择Create Branch...二级菜单。
提交改动
需要说明一下,标准的Git提交过程一般分为Commit和Push两步。Commit是将改动提交到本地仓库(也就是存储在你本地硬盘上的Git仓库)。Push操作则将本地仓库中的改动提交到远程仓库(也就是网络上大家共享使用的Git仓库)。
这里,为了简化起见,采用将Commit和Push合二为一的操作方式。这种方式仅仅为了大家入门操作简单,大家熟悉后,推荐还是将Commit和Push分开操作。
仍然是在代码文件夹内,右键,选择一级菜单中的Git Commit命令。
在弹出的对话框内,参考图片中的说明,进行相应操作。
切换分支
相比SVN,Git的一个最大优势之一,是不同分支直接切换非常方便、灵活、低成本。假定你正在分支A上开发一个功能,突然(现实中是必然),老板或经理和你说,另外一个Feature更重要,需要优先开发。
那么,你需要先将分支A上的改动Commit,或者Commit&Push。然后创建一个新的分支B,并且切换到分支B上,进行开发。分支切换的操作步骤,仍然是在代码目录下,右键,从Tortoise Git的二级菜单中,选择Switch/Checkout。
在弹出的对话框中,选择要切换到的分支。
注意,在下拉框中会看到多个分支选项,其中,以remote开头的,代表远程分支;其他的,不是以remote开头的,代表本地分支。一般情况下,选择切换到本地分支。
合并分支
代码合并永远是最头疼、最恼人的,不管你使用什么版本控制软件。这个真理在Git开发中仍然有效。颠扑不破!
在开源软件中,要求采用Pull Request方式,来进行代码合并。这里先假定大家目前工作在一个4~6人的小团队,每个人在代码编写上都是熟手,具有独立直接提交代码的水平和权限。所以,这里只介绍直接向主干分支上做合并。
合并之前,先Commit&Push你在开发分支上的修改。然后按照上面的介绍,切换到要合并的目标分支,一般是master,再进行合并Merge操作。具体操作,仍然是在代码目录下,右键,从Tortoise Git的二级菜单中,选择Merge。
在弹出的Merge对话框中,选择要Merge的改动的来源分支。
撤销本地更改
右键菜单,在Tortoise二级菜单中选择Revert。
后续
至此,简单介绍覆盖了大家在日常开发中最常用到的操作。面向的是Git常规用户,没有保护Git仓库创建和管理部分的内容。所有的操作,都是只说了怎么做,没有说这么做。
大家实际使用,肯定会遇到各种各样的问题。有问题怎么办?问百度:) 基本上,大多数常规问题都在网上快速找到答案。大家最常遇见的坑,基本都有人已经踩过,并且总结发布到网上了。
Git如果想用的好,用的顺畅,基本上,大家还是需要花些时间去了解它的总体设计思想和理念。如果有兴趣深入了解,《 Pro Git 》几乎是不二之选,没有之一。推荐下面的网站,中文翻译,外加章节链接。大家可以按需选择,挑着读。
https://git-scm.com/book/zh/v2
以上是关于从Svn到Git,5分钟迁移学习的主要内容,如果未能解决你的问题,请参考以下文章
从 SVN 迁移到 Git 存储库,其中同一项目的一部分已经发生迁移