从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

提供Git底层操作核心功能。下载地址:https://git-scm.com/

TortoiseGit

相当于TortoiseSVN。下载地址:https://tortoisegit.org/。下面的常用操作都采用TortoiseGit来完成。

了解几个常用操作

下载代码库

在需要下载代码的文件夹内,右键菜单,选择Git Clone命令。

从Svn到Git,5分钟迁移学习

这里,Git Clone对应SVN Checkout

更新代码

在前面下载好的代码文件夹内,右键菜单,选择Git Sync命令。

从Svn到Git,5分钟迁移学习

这里,Git Sync对应SVN Checkout

创建分支

在代码文件夹内,右键,先选择TortoiseGit一级菜单,然后选择Create Branch...二级菜单。

从Svn到Git,5分钟迁移学习

提交改动

需要说明一下,标准的Git提交过程一般分为Commit和Push两步。Commit是将改动提交到本地仓库(也就是存储在你本地硬盘上的Git仓库)。Push操作则将本地仓库中的改动提交到远程仓库(也就是网络上大家共享使用的Git仓库)。

这里,为了简化起见,采用将Commit和Push合二为一的操作方式。这种方式仅仅为了大家入门操作简单,大家熟悉后,推荐还是将Commit和Push分开操作。

仍然是在代码文件夹内,右键,选择一级菜单中的Git Commit命令。

从Svn到Git,5分钟迁移学习

在弹出的对话框内,参考图片中的说明,进行相应操作。

从Svn到Git,5分钟迁移学习

切换分支

相比SVN,Git的一个最大优势之一,是不同分支直接切换非常方便、灵活、低成本。假定你正在分支A上开发一个功能,突然(现实中是必然),老板或经理和你说,另外一个Feature更重要,需要优先开发。

那么,你需要先将分支A上的改动Commit,或者Commit&Push。然后创建一个新的分支B,并且切换到分支B上,进行开发。分支切换的操作步骤,仍然是在代码目录下,右键,从Tortoise Git的二级菜单中,选择Switch/Checkout

从Svn到Git,5分钟迁移学习

在弹出的对话框中,选择要切换到的分支。

从Svn到Git,5分钟迁移学习

注意,在下拉框中会看到多个分支选项,其中,以remote开头的,代表远程分支;其他的,不是以remote开头的,代表本地分支。一般情况下,选择切换到本地分支。

从Svn到Git,5分钟迁移学习

合并分支

代码合并永远是最头疼、最恼人的,不管你使用什么版本控制软件。这个真理在Git开发中仍然有效。颠扑不破!

在开源软件中,要求采用Pull Request方式,来进行代码合并。这里先假定大家目前工作在一个4~6人的小团队,每个人在代码编写上都是熟手,具有独立直接提交代码的水平和权限。所以,这里只介绍直接向主干分支上做合并。

合并之前,先Commit&Push你在开发分支上的修改。然后按照上面的介绍,切换到要合并的目标分支,一般是master,再进行合并Merge操作。具体操作,仍然是在代码目录下,右键,从Tortoise Git的二级菜单中,选择Merge

从Svn到Git,5分钟迁移学习

在弹出的Merge对话框中,选择要Merge的改动的来源分支。

从Svn到Git,5分钟迁移学习

撤销本地更改

右键菜单,在Tortoise二级菜单中选择Revert

后续

至此,简单介绍覆盖了大家在日常开发中最常用到的操作。面向的是Git常规用户,没有保护Git仓库创建和管理部分的内容。所有的操作,都是只说了怎么做,没有说这么做。

大家实际使用,肯定会遇到各种各样的问题。有问题怎么办?问百度:) 基本上,大多数常规问题都在网上快速找到答案。大家最常遇见的坑,基本都有人已经踩过,并且总结发布到网上了。

Git如果想用的好,用的顺畅,基本上,大家还是需要花些时间去了解它的总体设计思想和理念。如果有兴趣深入了解,《 Pro Git 》几乎是不二之选,没有之一。推荐下面的网站,中文翻译,外加章节链接。大家可以按需选择,挑着读。

https://git-scm.com/book/zh/v2