专业java、php、iOS、C++、网页设计、平面设计、网络营销、游戏开发、前端与移动开发培训机构
git多人协作开发
git 多人协作开发介绍
- 需要有一个服务器来存放
git远程仓库
- 搭建远程仓库的途径:
- 自己搭建一个git服务器: 费时费力 (一般公司做法)
- 在
GitHub
上托管项目: 公开项目免费、私有项目收费,很多第三方开源项目都是托管在GitHub
- 在
OSChina
上托管项目: 完全免费,在国内访问速度快(推荐使用)
- 搭建远程仓库的途径:
- 除了提交到本地仓库,还需要推送到服务器仓库(原创仓库)
- 多人开发容易产生冲突,需要手动解决
git 多人开发流程
- 创建远程仓库
- 经理操作
- 经理
git clone
将服务器仓库克隆到本地电脑 - 经理 创建iOS工程,
git commit
添加到本地仓库 - 经理 将本地仓库内容
git push
到远程仓库
- 经理
- 老王操作
- 老王
git clone
将服务器仓库克隆到本地电脑 - 老王 修改代码,
git commit
提交到本地仓库 - 老王 将本地仓库内容
git push
到远程仓库
- 老王
- 经理
git pull
将服务的最新代码拉到本地 - 注意:
- 每个人只有第一次需要克隆,将远程仓库和代码克隆到
- 以后修改文件先
git commit
到本地仓库,再git push
到远程仓库 git pull
获取服务器的最新代码到本地
多人开发实战
- 新建
Server(服务器)
、Manager(经理)
、LaoWang(老王)
3个文件夹 - 在
Server
文件夹创建远程仓库MoMo.git
- 使用
git init --bare MoMo.git
创建远程仓库,--bare
表示裸仓库,和本地仓库相比没有工作区
- 使用
- 经理克隆仓库,将远程仓库克隆到
Manager
文件夹cd
到Manager
文件夹git clone 远程仓库地址
:git clone /Users/UserName/02.git多人协作开发/Server/MoMo.git
- 配置用户名和用户邮箱
- 经理添加
.gitignore
文件,忽略不需要管理的文件- 在
iOS
开发中有一些不需要添加到git 仓库的文件,例如个人断点信息
和 个人Xcode
配置 - 这些忽略内容不需要我们手动来写,可以去
GitHub
下载,有人早就为常用的软件开发工程写好了对应的.gitignore
- 将 下载下来的
Objective-C.gitignore
复制到工作区
,并且重命名为.gitignore
- 在
- 经理使用
Xcode
新建iOS
工程项目,注意位置,需要将工程放到工作区
- 经理使用
git status
可以看到Xcode
已经帮我们将新建工程的代码添加到暂存区,我们只需要git commit
到本地仓库就可以了 - 经理
git commit
将代码提交到本地仓库 - 到此经理的本地仓库就添加了
MoMo
这个iOS
工程代码,但是远程仓库并不会跟着改动 - 经理
git push
: 经理将本地仓库的改动推送到远程仓库,这时候远程仓库的内容就和经理的本地仓库内容一致 - 老王克隆仓库,将远程仓库克隆到
LaoWang
文件夹cd
到LaoWang
文件夹git clone 远程仓库地址
:git clone /Users/UserName/02.git多人协作开发/Server/MoMo.git
- 配置用户名和用户邮箱
- 老王 修改代码
- 新建
LaoWangViewController
- 在
LaoWangViewController.m
添加如下代码- (void)laoWangDevelop { NSLog(@"老王完成功能1"); }
- 新建
- 老王将代码添加到本地仓库:
git add .
,git commit
- 老王本地仓库改动
git push
到远程仓库,此时服务器有了老王修改后的最新代码 - 经理要获取服务器的最新代码需要使用
git pull
,将服务器的最新代码pull
到本地仓库 - 后续经理再修改代码,使用
Xcode
提交
总结用到的命令
git init --bare #建立一个git服务器代码仓库
git clone <服务器地址> #建立一个git服务器代码仓库
git status #查看 git 工作区和暂存区 文件状态
git add . #将文件从工作区移到暂存区
git commit -m "注释文字" #将文件从暂存区提交到代码区,完成一次版本提交
git push #把本地版本库提交到服务器,类似 svn 的 commit
git pull #把将服务器的最新版本拉取到本地,并合并代码,类似 svn 的 update