iOS开发中的Git流程
2015-11-16 20:41
183 查看
Git的优点相信已不用我赘述,不是SVN之流能够相提并论的。
以前多人开发的时候我还用过拖文件大发和别人合作的。- -!
我在这里不多说一些基本命令,只教最实用的,多人开发到底怎么用Git。
这时候老大去github开一个repository, 当然,公司项目一般是private repo。
创建好之后呢。老大在这个repo分别开四个分支。
名字叫
现在是这样的。
ok,现在老大告诉其他两个人,把项目从github上clone下来。
ok,拉下来之后呢,输入
本地只有一个master,分支。现在,让每个人分别从远程分支拉两个分支。一个是
输入
这个命令的意思就是拉取远程的一个叫develop的分支,并在本地创建一个叫develop的分支和远程的分支匹配。
全部拉完之后我们再看看本地有哪些分支了。
做好分工,特别是storyboard和xib多种,尽量避免出现多人修改同一个文件。
每个人的所有开发工作都只在自己的分支开发。例如小明开发,你就在本地切换到自己的
每个人只允许在自己的分支直接push远程分支。
合并的时候必须遵循以下条件.
十分重要
首先,本地切换到
例如你是小明,那么在pull到远程的develop最新的内容之后,
如果出现conflict那么清除conflict之后,commit.然后把本地develop push 到远程的develop.
每完成一个功能就提交一次。不要累计代码。
这样的流程有什么好处呢?
几乎不会出现conflict。
你永远也不会污染develop分支。
为什么?因为你每次都是在本地merge完清除了conflict之后再push会远端,那么别人更新本地develop分支,再合并的时候,就算出现conflict也只会是自己最新代码产生的conflict。
最后我们再理清一下思路。
1.正式开发的时候每个人本地只需要有两个分支。一个叫develop,一个是自己的那个分支。
2.每个人可以直接push自己的分支。但是push develop分支的时候。必须先pull 最新的远程develop分支。然后和本地分支合并,清除conflict之后再push。
以前多人开发的时候我还用过拖文件大发和别人合作的。- -!
我在这里不多说一些基本命令,只教最实用的,多人开发到底怎么用Git。
场景
三人合作开发一个app,老大叫小明,老二叫小强,老三叫小伟。这时候老大去github开一个repository, 当然,公司项目一般是private repo。
创建好之后呢。老大在这个repo分别开四个分支。
名字叫
xiaoming_gittutorial,
xiaoqiang_gittutorial,
xiaowei_gittutorial,还有一个
develop分支。
现在是这样的。
ok,现在老大告诉其他两个人,把项目从github上clone下来。
ok,拉下来之后呢,输入
git branch,看看本地分支有哪些。
本地只有一个master,分支。现在,让每个人分别从远程分支拉两个分支。一个是
develop,一个是代表自己的那个分支,例如小明,就拉
xiaoming_gittutorial.
输入
git fetch origin develop:develop
这个命令的意思就是拉取远程的一个叫develop的分支,并在本地创建一个叫develop的分支和远程的分支匹配。
全部拉完之后我们再看看本地有哪些分支了。
我们做完了前期准备工作,接下来怎么保证多人协作的时候尽量少出现merge conflict和污染主分支
做到以下几点,其实就不容易出现大的纰漏。做好分工,特别是storyboard和xib多种,尽量避免出现多人修改同一个文件。
每个人的所有开发工作都只在自己的分支开发。例如小明开发,你就在本地切换到自己的
xiaoming_gittutorial分支然后进行开发。
每个人只允许在自己的分支直接push远程分支。
合并的时候必须遵循以下条件.
十分重要
首先,本地切换到
develop分支。
git pull
例如你是小明,那么在pull到远程的develop最新的内容之后,
git merge xiaoming_gittutorial.
如果出现conflict那么清除conflict之后,commit.然后把本地develop push 到远程的develop.
每完成一个功能就提交一次。不要累计代码。
这样的流程有什么好处呢?
几乎不会出现conflict。
你永远也不会污染develop分支。
为什么?因为你每次都是在本地merge完清除了conflict之后再push会远端,那么别人更新本地develop分支,再合并的时候,就算出现conflict也只会是自己最新代码产生的conflict。
最后我们再理清一下思路。
1.正式开发的时候每个人本地只需要有两个分支。一个叫develop,一个是自己的那个分支。
2.每个人可以直接push自己的分支。但是push develop分支的时候。必须先pull 最新的远程develop分支。然后和本地分支合并,清除conflict之后再push。
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- iOS开发之路--微博“更多”页面
- Objective-C的内省(Introspection)用法小结
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git fork同步是什么意思?
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- iOS开发之路--微博骨架搭建
- Objective-C中NSNumber与NSDictionary的用法简介
- IOS开发代码分享之获取启动画面图片的string
- Objective-C中NSLog输出格式大全
- Git使用小坑 Out of memory错误的解决方法