一、快速掌握 Git 之 TortoiseGit 的使用
Git 是当前最流行的代码版本控制工具,已经被越来越多的公司所采用,是不可逆转的大趋势,替代 Svn 等其它相关的代码版本控制工具,只是个时间的问题,因此 Git 工具的使用,是当前开发人员必须要掌握的技能。
关于 Git 的使用,我会分多篇博客进行介绍,带领大家直接走捷径,快速掌握 Git 的使用。
本篇博客主要介绍 Git 的工作流程,第三方图形化操作 Git 的工具: TortoiseGit 的使用。
后续我会介绍 Git 集成到 Visual Studio 2019 以及 Git 集成到 IntelliJ IDEA 的相关操作。无论使用哪种图形化工具操作 Git,我都介绍的是:图形化工具操作 Git 本地仓库的使用,最后再专门编写博客,介绍有关图形化工具操作 Git 远程仓库的使用。
好了,闲话不多说,直接上干货!
一、Git 和 TortoiseGit 的安装
1 安装 Git
Git 的官网下载地址为:https://git-scm.com/downloads
我们从官网上下载 Windows 版 Git 的最新版本(下载速度可能比较慢),下载完成后双击 exe 直接进行安装即可。
安装过程非常简单,如果你以前没有安装过的话,不必纠结每一步需要勾选什么,点击下一步安装即可(因为最终我们并不直接使用 Git 通过命令行来进行版本控制),只需要注意一点:建议安装路径中不要带有空格,比如 Program Files 就带有空格。
我本人电脑上 Git 的安装目录是 D:\Develop\Git 。
特别强调:这里不介绍 Git 命令的使用,不浪费大家的宝贵时间,因为实际工作中 99% 的场景,都是通过图形化界面(TortoiseGit,Visual Studio,IntelliJ IDEA)来操作 Git 的,所以如果大家有多余的精力,想学习 Git 命令的话,自己到网上查找相关资料即可。
安装完成之后,通过鼠标右键菜单,会发现多了两个菜单项:
Git GUI Here 是 Git 官方提供的图形化工具,很难用,不建议使用。
Git Bash Here 是 Git 命令行工具,实际工作中也很少用到。
所以如果你感觉这俩右键菜单项很不爽的话,可以考虑在 Git 安装步骤中,取消勾选这两项,这样鼠标右键菜单中就不会出现了。
2 安装 TortoiseGit 图形化工具
TortoiseGit 是一款优秀的轻量级 Git 图形化工具,比较适合的使用场景是:管理文档文件,比如 word 和 Excel 文档等,很少用来管理代码。因为管理代码的话,我们一般直接在开发工具中集成 Git 进行管理(比如使用 Visual Studio,IntelliJ IDEA)。
TortoiseGit 图形化工具的官网下载地址是:https://tortoisegit.org/download
下载最新的版本以及对应的中文汉化包,进行安装即可,建议使用 64 位版本。
我本人电脑的安装路径是:D:\Develop\TortoiseGit 。
如果你是第一次安装的话,也不要纠结具体界面中需要选择哪一项,直接点击下一步即可,安装完成后运行配置向导。
第一个界面是选择语言,由于还没有安装汉化包,所以只能选择 English。
第二个界面是填写姓名和邮箱,可以随便填写,这个主要是用来在版本历史记录中识别用户身份(识别是哪个用户提交的版本)。
第三个界面中,自动检测出你之前安装的 Git 的 Bin 目录的路径:
剩下的步骤,一直点击下一步,使用默认项安装即可,安装完成后,鼠标右键菜单中就多了 3 个菜单项:
然后安装 TortoiseGit 的中文汉化包,
安装完汉化包后,通过右键菜单项的 TortosiGit 下的 Settings 打开配置弹框,在 Languages 下拉框中选择中文即可:
然后再看一下鼠标右键菜单,有关 TortosiGit 的菜单项,就都变成中文了:
到此为止,TortoiseGit 就安装成功了。
特别注意:建议重新启动一下电脑,因为后续把代码文件托管给 Git 管理时,才会能看到相应的图标(类似于 Svn 在文件上显示的图标),如下图所示。如果你第一次安装完成后,没有重启电脑的话,那么在文件中是看不到相应图标的。
二、Git 本地仓库工作流程介绍
Git 本地仓库的工作流程,跟 Svn 的工作流程一样,只不过 Svn 的仓库在远程服务器上,而 Git 在本地和远程都有一个仓库(当然 Git 也可以没有远程仓库)。
Git 和 Svn 的区别在于:Git 需要先提交到本地仓库,再从本地仓库推送到远程仓库,而 svn 是直接提交到远程仓库。
Git 这样做的好处在于:实现了版本的分布式管理(完整的历史版本备份),最大限度的保障了版本的高可用。
无论是远程仓库所在的服务器,还是任何一个本地仓库所在的机器,硬盘出现了问题,都可以通过其它的机器进行恢复。
另外本地仓库所在的机器,也可以在不连接远程仓库服务器的情况下工作,非常灵活。
如果你使用过 Svn 的话,对上面的本地仓库工作流程一定非常熟悉,这里就不用文字介绍流程了,
下面会通过 TortoiseGit 的操作来介绍本地仓库工作流程。
1 创建版本库和工作目录
我创建了一个文件夹 D:\GitTest\Demo1 ,想在这个文件夹下使用 TortoiseGit 进行文件版本管理,
可以进入到这个文件夹内,然后运行鼠标右键菜单"Git 在这里创建版本库" 即可,
在弹出的对话框中,不要勾选上面的复选框,直接点击确定即可。
版本库创建成功后,在该文件夹下就会存在一个 .git 的隐藏文件夹,表明本地版本库和工作目录已经创建成功。如下图所示:
2 添加文件,修改内容,提交版本
在 D:\GitTest\Demo1 工作目录下,创建一个 test.txt 文本文件,
此时文件还没有被 Git 管理,因此文件的左下角会有一个 ? 图标。
选择该文件,运行鼠标右键菜单 “TortoiseGit ---> 添加” 即可将该文件添加到 Git 暂存区,被 Git 管理,
此时文件左下角就会有个 + 号图标。
此时你可以给 test.txt 编辑一些内容,然后在工作目录下的空白处,通过右键菜单 “Git 提交”,
在弹出的对话框中填写备注信息即可完成版本的提交,此时 test.txt 文件的左下角就会有一个绿色的对号,表明已经提交成功。
其实这跟 Svn 的操作是一模一样的,通过 TortoiseGit 图形化操作,是不是很简单? (#^.^#)......
后续再添加文件,以及对相关文件进行编辑,然后提交版本控制,应该就不用再多说了吧?
你可以选择具体的文件,或者在工作目录空白处,通过右键菜单 “TortoiseGit ---> 显示日志”,来查看每次提交的版本文件和具体修改的内容细节。
3 创建分支版本,合并分支版本,解决合并冲突,删除分支
Git 默认情况下,只有一个 master 分支,我们也可以再创建其它分支,各分支之间互相独立,互不影响。
在工作目录的空白处,运行鼠标右键菜单 “TortoiseGit ---> 创建分支”,
在弹出的对话框中,填写分支名称:dev ,在下面的选项中勾选“切换到新分支”,然后点击确定即可,如下图所示:
此时工作目录的版本就处于 dev 分支了,怎样判断当前版本是在哪个分支上呢?
只需要通过鼠标右键菜单,看看菜单项 “Git提交 --> 分支名称”,就可以判断当前处在哪个分支上,
如下图所示,当前处于 dev 分支上。
我们在 dev 分支下的 test.txt 文件中编写一句话:“这是 dev 分支下编写的内容...”,然后提交版本。
然后在工作目录空白处,运行邮件菜单 “TortoiseGit ---> 切换/检出”,
在弹出的框中分支中选择 master ,点击确定,切换到 master 分支上。
我们在 master 分支下的 test.txt 文件中编写一句话:“这是 master 分支下编写的内容...”,然后提交版本。
然后在工作目录的空白处,运行鼠标右键菜单 “TortoiseGit ---> 合并”,
弹出合并分支的对话框,在分支中选择 dev,表示将 dev 分支合并到当前的 mater 分支中,点击确定,会发现合并冲突。
点击上面对话框中的 “解决” 按钮,弹出新的对话框,列出了冲突的文件列表,目前只有一个文件 test.txt 。
选择 test.txt 文件,右键菜单选择 “编辑冲突”(也可以直接到工作目录中,选择 test.txt 的文件,通过右键菜单选择 “TortoiseGit --->编辑冲突”),弹出编辑冲突对话框。
可以看到对话框中,左上是 dev 分支下 test.txt 的内容,右上是 master 分支下 test.txt 的内容,下面是合并后的内容,
此时我们复制上面的内容,粘贴到下面,手动编辑一下合并后的内容即可。比如我编辑合并后的内容如下图所示:
然后使用 Ctrl + S 保存,弹出如下对话框,选择 “标记为解决” 即可。
其实你可以不使用这个编辑冲突的对话框,直接打开 test.txt 文件,编辑成你期望合并后的内容即可。
最后,我们把解决了冲突的 test.txt 文件,运行鼠标右键菜单 “Git 提交 ---> master...” ,提交到 master 本地版本库即可。
此时 dev 分支可能已经没用了,我们可以把 dev 分支删掉。
在 master 分支的工作目录下的空白处,运行鼠标右键菜单 “TortoiseGit --->版本分支图”,弹出如下的对话框。
因为当前处于 master 分支,所以无法删除 master 分支,可以在 dev 分支上通过鼠标右键菜单,删除 dev 分支。
到此为止,有关 TortoiseGit 图形化工具进行版本控制的常用功能,已经介绍的差不多了。
TortoiseGit 其它相关的菜单功能,大家有兴趣的话,可以自行研究一下,
都是中文界面,研究学习起来,非常简单,比记忆和使用命令行操作要方便多了。
通过本篇博客的介绍,大家肯定感觉到 Git 的使用并不难,大大增强了学习和使用的自信心。在后续的博客中,我会继续介绍有关 Git 集成到 Visual Studio 和 IntelliJ IDEA 这两款开发工具的使用方法,以及介绍 Git 远程仓库的相关操作,都很简单。