![iOS开发实战:从入门到上架App Store(第2版) (移动开发丛书)](https://wfqqreader-1252317822.image.myqcloud.com/cover/435/26943435/b_26943435.jpg)
1.4 使用Git进行项目版本管理
1.4.1 Git与Github简介
俗话说“工欲善其事,必先利其器”。在项目开发中使用一个版本控制工具是必不可少的,Git是一个开源的分布式版本控制系统,它可以协同多人更加高效地协作开发,同时可以帮助开发者根据不同的目的进行项目的分支管理。GitHub是一个代码托管系统,世界各地的开源项目都可以免费在上面托管。将一个Git管理的仓库托管在GitHub上可以实现多个开发者参与、多地点同时协作的开发方式,这将大大提高项目开发的效率。
1.4.2 注册GitHub会员
GitHub免费为开源项目提供代码托管平台,若要使用GitHub提供的服务,首先需要注册成为GitHub会员。在浏览器中打开https://github.com,因为GitHub服务器部署在国外,打开速度或许有些缓慢。打开后的网页如图1-23所示。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0030-0030.jpg?sign=1739520418-dAKlUrIEfS33T7z8b88WmVXcovSPiogT-0-181327426093106d4c20d9118ea96fea)
图1-23 GitHub主页
单击Sign up for GitHub按钮进入注册界面,如图1-24所示。在该界面填写一些基本信息,这时github会对用户名是否重复、邮箱是否正确等进行检查,无误后单击Creat an account按钮。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0030-0031.jpg?sign=1739520418-yD5AiPJ1fe3L6SPlg5hnVC7avtrnqNM9-0-953ed83794da11c46f5604e9f0e15ce9)
图1-24 填写注册信息
如果注册成功,GitHub就会让我们选择服务类型,个人开发者可以选择free,如图1-25所示。单击Finish sign up,一个属于你自己的GitHub账号就创建成功了。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0030-0032.jpg?sign=1739520418-9de3hB4idnr4JWABymkghNMOJhwDkSUj-0-6f2df88b8e58eaf7b4e1f09cfe75c87f)
图1-25 选择服务类型
1.4.3 使用Xcode创建Git仓库
Xcode是系统一体化性很强的iOS开发工具,在安装Xcode时默认安装了Git工具,我们创建工程的时候可以选择创建本地Git仓库,如图1-26所示。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0031-0033.jpg?sign=1739520418-0zuKDH2IqAjyg8ijnkPnCtkAj54FbPtT-0-543afed175eac44eb292bac46f655e00)
图1-26 创建Git仓库
之后在Xcode工具导航中的Source Control标签里可以看到当前项目的仓库,如图1-27所示。在开发中,这里面代码版本管理的功能将大有用处。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0031-0034.jpg?sign=1739520418-ykIm3QXT0u8YCL3JDerLmYrhj7dKv66H-0-e40c574d3545cc02ae84b3620ec87afa)
图1-27 Xcode的代码管理功能
New Branch可以创建一个新的分支,创建的分支是原工程代码的一个副本,但是可以在不影响其他分支的情况下独立开发新的扩展。举个例子,项目的初始版本是1.0,现在需要开发2.0版本,开发者完全可以在1.0版本的基础上拉出一个2.0分支,在2.0分支上做的开发工作都不会影响1.0版本。
Switch to Branch提供切换分支功能,开发者可以在多个分支之间自行切换,灵活开发。
Merge from Branch可以进行分支的合并,在开发中这也是一个很强大的功能。例如,开发者需要在当前工程中添加一个风险较大的模块,这时可以拉出一个新的分支,在新的分支上进行开发,开发完成并且测试没有问题之后,可以在原分支上使用Merge from Branch进行代码合并。
Check Out可以从远端检测出默认分支,这个功能使用时要特别注意,如果本地分支中文件有改动,就会被覆盖掉。
Commit可以将改动的代码提交到本地,提交的时候会有提交用户记录和备注操作。
Push功能将本地的改动推送到远端服务器,如推送到GitHub平台进行托管。
Pull功能与Push对应是从远端服务器拉取有更改的代码。
1.4.4 用Xcode建立本地Git仓库与GitHub代码托管平台的关联
前面已经创建了GitHub代码托管平台账号和本地Git仓库。Git仓库用于代码版本的本地控制,GitHub平台帮助多地、多人合作开发,两者结合才能最高效地进行项目的开发。首先,需要在GitHub平台上创建一个远程repository(仓库),用申请好的账号登录GitHub进入主页,单击New repository,如图1-28所示。注意,如果是新创建的GitHub账号,就需要先进行邮箱验证。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0032-0035.jpg?sign=1739520418-CmclIOdKXwx9TnafZ5NymH3a3Rs7G5NW-0-9ae1308abee07b95960afc6c3737bfc2)
图1-28 新建代码仓库
这样一个远程仓库就创建好了,只是目前空空如也,如图1-29所示。GitHub为这个仓库分配了一个远程的地址,通过这个地址,开发者可以将其与本地的仓库关联,进行多人远程协作。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0032-0036.jpg?sign=1739520418-M7YgwDitcXUix9s1AjrNNWvOnRvJC5Gn-0-2ecaad6a57e4beb2e65f2ff8ab679a4f)
图1-29 仓库地址
再回到Xcode,在Source Control中选择项目的本地仓库,选择configure YHTestProgect,如图1-30所示。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0033-0037.jpg?sign=1739520418-9xZ0LJPclG9w1T7rtY9trd6yEVEy6jrU-0-f677c8d70ffd91ca5b8d8826e246641e)
1-30 进行代码仓库设置
在弹出来的设置菜单中的Remotes标签里单击加号,选择Add Remote,如图1-31所示。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0033-0038.jpg?sign=1739520418-AFzK53XaZ8U2mebkx6wPqfroXKUR9U4g-0-12afb80ae982d362dafc0eb6ca092074)
图1-31 关联一个远程仓库
如图1-32所示,将GitHub远程仓库的地址填写上去,单击Add Remote。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0033-0039.jpg?sign=1739520418-eqr697n6S6QjLMvZgG8IPGEDbmCU2m15-0-3315455f404022a0c59271718d9f213e)
图1-32 关联远程从库地址
然后使用Push功能将本地的代码Push到GitHub上。第一次使用时,Push需要输入用户名和密码,使用GitHub账号的用户名和密码即可。需要注意,这里的用户名不是邮箱,是GitHub会员用户名,如图1-33所示。如果Push成功,本地的Git仓库就和托管在GitHub上的仓库进行了关联,我们可以随时随地地更新代码到GitHub上,也可以将GitHub上更新的代码拉到本地来。
![](https://epubservercos.yuewen.com/8C1965/15367244704189106/epubprivate/OEBPS/Images/Figure-0033-0040.jpg?sign=1739520418-eZBJWdTUHcgdEUWS3lpP0MisoA6sZ0Zr-0-5a3febc7740af4306c2f6463d8586bf1)
图1-33 进行代码管理操作