[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 我们需要注册

1.1注册登录.png

约束比较多, 账号和邮箱啊, 密码之类的, 如果有一个不符合人家规定, 就会跳转到一个页面, 会告诉你哪个不行, 修改之后, 显示对号了, 之后继续sign up(注册), 然后注册好之后, 重新进入到https://github.com

1.2登录成功后.png

1.2 创建远程仓库

然后点击右上角+号, 新建个项目(远程仓库)

1.3新建项目(远程仓库).png

1.4新建项目.png

获取远程仓库的网址

1.5获取仓库网址.png

2.0 在Xcode中进行代码克隆(下载)到本地

2.0打开Xcode准备拉取.png

然后输入远程仓库的网址

2.1输入远程仓库的网址.png

设置和远程仓库交互的方式(用GIT还是SVN)(根据你远程仓库网址的类型, 如果是既支持GIT也支持SVN那就无所谓, 但是只支持其中一种方式, 那就不要选错了, 当然了, 账号密码也是要对应哪个网站, 或者服务器的)

2.2设置和远程仓库交互的方式(用GIT还是SVN).png

如果点击Next错误了: 看看是不是这个

设置本地仓库位置

2.3设置本地仓库的位置.png

2.4进行克隆(下载).png

成功后, 就会自动打开你克隆(下载)的工程

2.5 下载成功.png

步骤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

文/M_Lee(简书作者)

原文链接:http://www.jianshu.com/p/300f8fd043c5

著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容