一次简单的开发过程
1. git init --bare shared.git
创建空的版本库2. git clone ~/Desktop/gitdemo/repository/shared.git/
从版本库将代码克隆到工作目录
3. git add .
将所有修改过的文件添加到暂存区
4. git commit -m "修改的信息"
将文件提交到本地代码仓库
5. git push origin master
将本地代码仓库中的修改推送到远程(origin)代码仓库的master分支
6. git pull
从远程代码仓库将最新的内容拉到本地代码库
7. git status
查看本地代码仓库的文件状态
*** 要在Xcode中要使用.git进行团队开发必须设置.gitignore文件
说明:.gitignore文件用于指定在提交文件是忽略哪些文件或文件夹
内容如下:
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.Ripa
*.xcuserstate
contents.xcworkspacedata
project.xcworkspace
UserInterfaceState.xcuserstate
project.xcworkspace/
xcuserdata/
UserInterface.xcuserstate
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
.DS_Store
Pods
Pods/*
012.png
具体操作步骤如下:
1>
# 从缓存区中删除UserInterfaceState.xcuserstate文件
git rm --cached MyDemo/MyDemo.xcodeproj/project.xcworkspace/xcuserdata/aplle.xcuserdatad/UserInterfaceState.xcuserstate
或者
# 强制删除UserInterfaceState.xcuserstate文件
git rm -f MyDemo/MyDemo.xcodeproj/project.xcworkspace/xcuserdata/aplle.xcuserdatad/UserInterfaceState.xcuserstate
2> vim .gitignore
并粘贴
project.xcworkspace
:wq保存退出
创建上述.gitignore文件后会忽略project.xcworkspace目录中的所有文件,包括界面记录、断点记录等信息
一次完整的Git开发
1. 创建空代码库,代码库的名称为 shared.git
================================================================================
git init --bare shared.git
2. 准备代码
================================================================================
1> 克隆代码库
git clone ~/Desktop/gitdemo/repository/shared.git/
2> 配置当前代码库的用户信息(如果已经配置过全局用户属性,此步骤可以忽略)
# 进入shared工作目录
cd shared
# 配置用户名
git config user.name manager
# 配置用户邮箱
git config user.email manger@163.com
3> 打开Xcode创建项目并保存在shared目录中
4> 忽略不必要的用户数据文件
# 查看当前状态,以便选择用户文件
git stauts
# 具体的目录名称根据项目所在位置决定,需要注意末尾的文件名是:UserInterfaceState.xcuserstate
git rm -f IWeibo/IWeibo.xcodeproj/project.xcworkspace/xcuserdata/liufan.xcuserdatad/UserInterfaceState.xcuserstate
# 生成.gitignore文件
echo "project.xcworkspace" > .gitignore
# 将.gitignore文件添加到暂存区
git add .
# 将所有修改提交到本地代码库
git commit -m "new project"
5> 用Xcode打开项目,调整代码,并将调整后的代码,提交到本地代码库
说明,如果勾选“Push To Remote”,点击Commit按钮时会执行以下三个操作
(1) 将修改后的文件添加到暂存区
(2) 将暂存区中的文件提交到本地代码库
(3) 将本地代码库的内容提交到远程代码库
6> 在Xcode中,创建developer分支,供开发时使用
注意:新建分支之后,需要使用push功能,将改分支推送到远程代码库,否则该分支只能在用户本地可见
3. V1.0开发
================================================================================
1> User01在developer分支上开发并提交代码
2> 当V1.0开发完成后,经理将developer分支上的代码合并到master分支上
3> 经理切换回master分支,并在命令行中增加标签
# 在当前时间点增加v1.0的标签
git tag -a v1.0 -m "Version 1.0"
# 将v1.0的标签推送到远程代码库
git push origin v1.0
# 查看本地标签
git tag
# 查看本地分支
git branch
# 查看所有分支
git branch -a
4> 经理将当前v1.0版本进行发布
4. V2.0开发中的修改V1.0的Bug
================================================================================
1> 经理在master分支中创建v1.0bugfix分支,并通知User01进行修改
2> 正在开发中的User01接收到修复Bug的工作命令后,停止手头工作,并将当前代码提交至服务器
3> 直接切换到v1.0bugfix分支,对V1.0的bug进行修订,修改完成后,提交代码
4> 经理审核代码通过后,将修改后的代码整合到master主线上
5> 经理增加v1.1的标签
# 在当前时间点增加v1.0的标签
git tag -a v1.1 -m "Version 1.0"
# 将v1.0的标签推送到远程代码库
git push origin v1.1
# 删除远程分支
git push origin --delete V1.0bug_fix
6> User01将修改后的代码整合到developer主线上,并且开始后续工作
5. Tag的作用
================================================================================
在GIT中,可以在任意需要的时间点,在分支上打上标签,而在其他任何需要的时候,将代码切换回该时间点的状态
# 签出v1.0标签
git checkout v1.0
# 将该标签时刻的代码建立一个分支
git checkout -b v1.0branch
# 删除远程标签
git push origin --delete tag
# 删除本地标签
git tag -d