2.2 Git版本控制工具
对于现在的软件项目来说,版本控制工具应该是“标配”的开发工具之一了。
问题:什么是版本控制工具?
回答:版本控制工具提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史。
2.2.1 安装Git
这里笔者推荐一款免费、开源、简单易用的版本控制工具Git(https://git-scm.com/)。
?小知识:Git的诞生与Linux有不解之缘,Git是由被誉为“Linux之父”的Linus Torvalds(https://zh.wikipedia.org/wiki/%E6%9E%97%E7%BA%B3%E6%96%AF%C2%B7%E6%89%98%E7%93%A6%E5%85%B9)最初开发的,他认为之前现有的版本控制工具,例如CVS(http://www.nongnu.org/cvs/)、SVN(https://subversion. apache.org/)都满足不了Linux Kernel开发的需求(免费、简单、高效以及分布式),所以就决定自己开发一款全新的版本控制工具Git。
Git的安装比较简单,请读者自行到官网下载页面(https://git-scm.com/downloads)下载操作系统的相应版本安装即可。安装成功后可以通过如图2.1所示方法进行验证。
图2.1 查看Git版本号和帮助来验证Git安装是否成功
2.2.2 Git常用命令
本节来了解Git常用命令的用法。
(1)新建一个文件夹,然后在新建的文件夹中创建Git仓库。使用的命令如下:
mkdir git-demo // 新建git-demo文件夹
cd git-demo // 进入git-demo文件夹
git init // 创建了一个新的Git仓库
效果如图2.2所示。
图2.2 新建本地Git仓库
(2)在刚才新建的Git仓库中,就可以进行添加和提交修改的操作了。
touch test.file // 为了演示Git的使用,这里先新建test.file文件
?提示:touch命令是Linux和macOS系统下的命令行工具,touch test.file的作用是在当前目录下新建空文件test.file,读者也可以使用其他自己熟悉的方法新建测试文件。
(3)Git添加修改的命令使用方法如下:
git add test.file // 添加test.file文件
git add * // 添加所有文件
(4)Git提交修改的命令使用方法如下:
git commit -m "新建test.file" // 提交修改并且描述此次修改的内容
?提示:第一次使用git commit命令时,会提示用户配置Git账户和邮箱,配置方法为git config --global user.name "Your Name"、git config --global user. email "Your Email"。
此时,Git的工作流如图2.3所示。
图2.3 Git添加和提交修改的工作流
(5)添加和提交操作成功之后,可以通过如下方法查看结果。
git log // 查看Git提交的历史记录
此时,对于上面的提交,读者可以看到类似下面的信息。
commit COMMIT-ID
Author: GIT-USER-NAME
Date: COMMIT-DATE
新建test.file
(6)除了自己创建Git仓库,还可以从网上下载已有的Git仓库代码。这里,以Github上React Native项目(https://github.com/facebook/react-native)为例,使用的命令如下:
git clone https://github.com/facebook/react-native // 将远程仓库复制到本地
(7)此时,由于Git仓库是在远程服务器上,还需要用到git pull和git push这两个命令来操作Git仓库。
cd react-native // 首先需要进入Git仓库所在的文件夹
把刚才复制到本地的Git仓库更新到远程仓库的最新改动,使用git pull命令。
git pull
把刚才复制到本地的Git仓库提交的修改提交到远程仓库中,使用git push命令。
git push
?提示:使用Github上React Native项目的例子,执行git push可能会提交失败,这是因为提交至远程仓库需要权限,请读者知悉。
当然,除了上述介绍的基本用法之外,Git命令还有很多,举例如下。
? git status:查看Git仓库状态。
? git diff:查看Git仓库修改内容的差异。
? git branch:使用和管理Git分支。
? git tag:使用和管理Git标签。
本书限于篇幅就不一一介绍了,想要深入了解的读者可以参考Git相关书籍和教程。
?提示:如果读者对Git命令不熟悉的话,推荐使用Git的图形化工具,例如,SourceTree(https://www.sourcetreeapp.com/)或者Tower(https://www.git-tower.com/mac/),它们都提供了Windows和macOS的版本。