[iOS]Xcode+GitHub远程代码托管(GIT, SVN)
先来看看什么是代码远程托管: 其实就是将我们的代码上传到GitHub的服务器上, 供别人下载, 当然了也可以在团队开发的时候, 使用GitHub进行代码合并工作, 下面我们进入正题
(已经有远程仓库的网址, 请直接跳转到2.0步骤查看)
(工程是从远程仓库拉取下来的, 并且写好了代码后, 不会进行拉取/推送, )
忠告: 进行拉取, 推送之前最好备份一下你的代码
Git方式 -> 步骤3.0
SVN方式 -> 步骤4.0
Git回滚-> 步骤5.0
SVN回滚-> 步骤6.0
步骤1.0 创建远程仓库
这里我们使用https://github.com (github现在支持GIT和SVN2种访问方式) (可能公司有自己的服务器, 会给你一个网址)(如果想只是使用SVN的, 推荐一个svn999.com)
1.1 我们需要注册
约束比较多, 账号和邮箱啊, 密码之类的, 如果有一个不符合人家规定, 就会跳转到一个页面, 会告诉你哪个不行, 修改之后, 显示对号了, 之后继续sign up(注册), 然后注册好之后, 重新进入到https://github.com
1.2 创建远程仓库
然后点击右上角+号, 新建个项目(远程仓库)
获取远程仓库的网址
2.0 在Xcode中进行代码克隆(下载)到本地
然后输入远程仓库的网址
设置和远程仓库交互的方式(用GIT还是SVN)(根据你远程仓库网址的类型, 如果是既支持GIT也支持SVN那就无所谓, 但是只支持其中一种方式, 那就不要选错了, 当然了, 账号密码也是要对应哪个网站, 或者服务器的)
如果点击Next错误了: 看看是不是这个
设置本地仓库位置
成功后, 就会自动打开你克隆(下载)的工程
步骤3.0 如何使用Xcode自带的Git进行代码的提交, 拉取, 推送
壮士:这里有碗汤你先喝了, 我们先来看下原理:参考这个链接:http://www.jianshu.com/p/0582e1908c22 可见, 我们需要做以下3步:
Commit操作:
解释: 先把Xcode工作区(你写的代码), 提交到本地仓库),
Pull操作:
解释: 然后从远程仓库拉取代码(可能别人刚传了别人写的, 你需要拉下来和你新写的合并一下), 然后在本地仓库合并后, 保证编译, 运行无错误后.
Push操作:
解释: 在进行将本地仓库你的代码推送到远程仓库上面.让团队里别的人可以进行下载
3.1 Commit操作
打开工程后, 看这里有个Source Control
点开我们来说一下
然后当你修改了代码后, 修改过的文件都是显示M
然后我们点击Source Control 菜单, 选择Commit(提交, 把Xcode工作区的变更提交到本地仓库)
然后点击commit按钮之后, M标志没了就代表提交变更已经到本地仓库啦, 但是不是远程仓库哦, 别人还不能拿到你新写的代码!!(庆祝一下, 成功一小步)
'
3.2 Pull(拉取)操作
点开Source Control 然后执行Pull操作
这个时候, 可能会出现警告提示, 如图:(如果没出现直接略过)
// 你有本地变更没有提交到本地仓库, 不让你去拉取代码
但是明明我们都Commit过了啊, 这是因为, 有一个配置文件实时的刷新(就是刚才没勾选那个), 那么我们只有删除它啦!
删除这个配置文件
进入终端
利用cd命令进入到我们工程所在的文件夹, 如图:
如图:
然后运行命令:
解释下参数
git rm --cached 工程名.xcodeproj/project.xcworkspace/xcuserdata/电脑用户名.xcuserdatad/UserInterfaceState.xcuserstate
例如:
git rm --cached php.xcodeproj/project.xcworkspace/xcuserdata/lidongxu.xcuserdatad/UserInterfaceState.xcuserstate
然后输入完命令, 回车运行
然后重新拉取, (或者你没出现警告, 应该是这样的)
点击Pull按钮之后, 就会把远程仓库的代码拉到本地了, 然后运行下吧看看有没有错误啊, 冲突之类的(如果有冲突, 就是商量下, 用谁的)
然后继续点击Pull按钮拉取代码
步骤3.3 Push(推送代码)到远程服务器
还是一样, 打开Source Control 然后点击Push
然后点击Push
然后点击Push按钮, 如果你是第一次配置, 可能会让你输入远程仓库网站对应的登录账号和密码
然后显示正在change, 等待一会儿
下面这个会一闪, 然后自己消失的哦!
然后怎么看我们是否正在把本地仓库代码推送到了远程服务器上, 看一下我们对应的网站
以上就是我们Git的基本使用过程
4.0 SVN使用方式
先来解释下Source Control 里不同的地方
然后现在我们编写完代码之后:
4.1 我们要拉取(update)远程仓库的代码
如果你不拉取, 就直接推送, 很可能把远程仓库里别人代码覆盖掉, 所以一定要先拉取
4.2然后确认没有错误之后, 然后提交(Commit)到远程仓库,
这个Commit跟Git中的可不一样哦!
4.3弹出这个界面, 选择你要推送的代码
这样, 我们SVN就基本使用过程
有的时候, 我们代码合乱了, 或者需要穿越回到昨天的那个代码样式怎么办? 不要怕. 代码版本管理就是为了方便我们的. 往下看
5.0 Git回滚本地代码
进入到我们本地仓库目录下
cd 仓库文件夹路径
然后我们可以看一下, 项目中代码现在是什么样子(这里就随便写了2个变量)
然后提交到本地仓库, 拉取代码合并, 推送到远程服务器, 现在远程服务器有版本0, 版本1 和版本2的代码了(本地是版本2的), 现在我想
让本地代码进行回滚.
5.1 查看我们提交的记录
输入命令 git log --pretty=oneline
5.2 git reset --hard HEAD^
HEAD^回滚上次提交 (取消刚才的提交)
HEAD^^ 回滚到上次的上次的提交
输入命令运行.
HEAD is now at d490df9 (本地代码变成上次提交的时候的样子了)
6.0 SVN回滚代码
现在代码是这样的.
6.1 先进入到本地仓库下
6.2 查看我们的提交记录
输入命令 svn log
每个r后面的数字 就是一次提交的记录
6.3 回滚到某次提交的时候的代码的样子
svn update -r 数字 (数字就是那个6 5 4 3 2 1)
根据自己电脑上的数字自己选择
这里我们回滚到最初的状态
完成之后打开代码查看
最后送个福利: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
[iOS]Xcode+GitHub远程代码托管(GIT, SVN)的更多相关文章
- 【iOS技术】Xcode+GitHub远程代码托管(GIT, SVN)
原创 2016-05-24 旭哥 蓝鸥 学生对旭哥的评价是这样的: 旭哥 为什么这么年轻 知识却比我们多这么多............ 旭哥很是负责,对同学的各种问题都能够热心地解答,在旭哥的带领下, ...
- 使用命令创建github代码仓库,push本地仓库到github远程代码仓库
1.利用命令创建github远程代码仓库 在将本地代码push到github远程代码仓库之前,总是需要新建github代码仓库,在将本地仓库关联到github远程仓库.其中最为繁琐的操作是建立gith ...
- Github远程库与Git本地库连接
Github远程库与Git本地库连接 以下有任何[]符号只是将内容扩起,输入命令不需要将[]加入 创建SSH Key 用户主目录有.ssh->id_rsa和id_rae.pub->直接跳过 ...
- GitHub的代码托管和使用方法
原文 GitHub托管 借助GitHub托管你的项目代码 PS:话说自己注册了GitHub都很久了,却没有怎么去弄,现在系统学习一下,也把自己的学习经历总结下来share给大家,希望大家都能把Git ...
- 使用github进行代码托管
---恢复内容开始--- 记录下使用github进行个人代码托管,github是公共的代码托管库,可以免费使用,由于是公共的所以大家都可以查看,如果是隐私重要的文件代码可以选择付费变为私有库 1.注册 ...
- 使用eclipse上传项目到开源中国代码托管Git@osc教程
创建项目 安装EGit插件 没有的话看下图 生成公钥 注册git账号 新建git项目 添加公钥 建立本地代码库 本文章版权归博主所有,如需转载请私信.
- iOS 使用GitHub托管代码(github desktop使用)
iOS 使用GitHub托管代码 代码托管 1.首先得有一个GitHub的账号,没有的话就去https://github.com注册一个吧. 2.下载GitHub Mac客户端:http://mac. ...
- Git的基本了解与使用、向github提交代码
#Git的基本了解与使用.向github提交代码- git:是一个版本控制系统.- github:一个代码托管提供商.开源网站.是一个面向开源及私有软件项目的托管平台,因为支持Git作为唯一的版本库格 ...
- git与代码托管工具
1.git初识 git是一个版本管理工具,用来管理项目的不同的版本,记录下不同的提交记录,git还可以构建不同的分支,用来给不同的人来推送使用. 推荐的git教程:https://www.cnblog ...
随机推荐
- tornado学习笔记
一.UIMOTHODS: 1.在项目目录创建uimothods.py文件(名称可以任意)内容: def test2(self): return ('hello uimothods') 2.tornad ...
- 【原】python3.7 无法pip安装提示ssl错误解决方案
问题 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not av ...
- 公钥与私钥的理解,以及https的应用原理
1.公钥与私钥原理1)鲍勃有两把钥匙,一把是公钥,另一把是私钥2)鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊----每人一把.3)苏珊要给鲍勃写一封保密的信.她写完后用鲍勃的公钥加密,就可以达到 ...
- PAT甲级题解-1057. Stack (30)-树状数组
不懂树状数组的童鞋,正好可以通过这道题学习一下树状数组~~百度有很多教程的,我就不赘述了 题意:有三种操作,分别是1.Push key:将key压入stack2.Pop:将栈顶元素取出栈3.PeekM ...
- Alpha冲刺-第三天
1.1 今日完成任务情况以及遇到的问题. 完成任务情况 杜世康:使用正则表达式对于弹幕文本中的数字,字母,符号,非法字符等过滤. 刘丹,李玉莹:实现主播管理功能 曹莹雯,尹楠: 调用NLPIR/ICT ...
- VMware虚拟机安装ghost win7系统方法
原本地址:http://www.xitongcheng.com/jiaocheng/xtazjc_article_15314.html
- OneZero团队Beta发布剧透
统计界面暂不透露,尽请期待.
- 窗体的构造函数和OnCreate事件
窗体的构造函数和创建事件和OldCreateOrder属性有很大的关系. 情况1: 如果窗体继承自TForm,且有如下形式: 1. constructor TForm1.Create(AOw ...
- 提升jmeter自身性能
JMeter负载测试时使用GUI界面和较多的收集测试结果的监听器容易造成jmeter的性能瓶颈,远程测试时的控制台尤为明显.提升JMeter负载测试时性能的方法如下: 官方的解决办法:http://j ...
- obj.getClass() == Person.class 用于判断类型
obj.getClass() == Person.class 用于判断类型