[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

时间:2020-11-26 11:35:17

先来看看什么是代码远程托管: 其实就是将我们的代码上传到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 我们需要注册

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

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

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

1.2 创建远程仓库

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

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

获取远程仓库的网址

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

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

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后输入远程仓库的网址

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

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

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

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

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

设置本地仓库位置

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

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

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

步骤3.0 如何使用Xcode自带的Git进行代码的提交, 拉取, 推送

壮士:这里有碗汤你先喝了, 我们先来看下原理:参考这个链接:http://www.jianshu.com/p/0582e1908c22 可见, 我们需要做以下3步:

Commit操作:

解释: 先把Xcode工作区(你写的代码), 提交到本地仓库),

Pull操作:

解释: 然后从远程仓库拉取代码(可能别人刚传了别人写的, 你需要拉下来和你新写的合并一下), 然后在本地仓库合并后, 保证编译, 运行无错误后.

Push操作:

解释: 在进行将本地仓库你的代码推送到远程仓库上面.让团队里别的人可以进行下载

3.1 Commit操作

打开工程后, 看这里有个Source Control

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

点开我们来说一下

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后当你修改了代码后, 修改过的文件都是显示M

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后我们点击Source Control 菜单, 选择Commit(提交, 把Xcode工作区的变更提交到本地仓库)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后点击commit按钮之后, M标志没了就代表提交变更已经到本地仓库啦, 但是不是远程仓库哦, 别人还不能拿到你新写的代码!!(庆祝一下, 成功一小步)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)'

3.2 Pull(拉取)操作

点开Source Control 然后执行Pull操作

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

这个时候, 可能会出现警告提示, 如图:(如果没出现直接略过)

// 你有本地变更没有提交到本地仓库, 不让你去拉取代码

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

但是明明我们都Commit过了啊, 这是因为, 有一个配置文件实时的刷新(就是刚才没勾选那个), 那么我们只有删除它啦!

删除这个配置文件

进入终端

利用cd命令进入到我们工程所在的文件夹, 如图:

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

如图:

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后运行命令:

解释下参数

git rm --cached 工程名.xcodeproj/project.xcworkspace/xcuserdata/电脑用户名.xcuserdatad/UserInterfaceState.xcuserstate

例如:

git rm --cached php.xcodeproj/project.xcworkspace/xcuserdata/lidongxu.xcuserdatad/UserInterfaceState.xcuserstate

然后输入完命令, 回车运行

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后重新拉取, (或者你没出现警告, 应该是这样的)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

点击Pull按钮之后, 就会把远程仓库的代码拉到本地了, 然后运行下吧看看有没有错误啊, 冲突之类的(如果有冲突, 就是商量下, 用谁的)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后继续点击Pull按钮拉取代码

步骤3.3 Push(推送代码)到远程服务器

还是一样, 打开Source Control 然后点击Push

然后点击Push

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后点击Push按钮, 如果你是第一次配置, 可能会让你输入远程仓库网站对应的登录账号和密码

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后显示正在change, 等待一会儿

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

下面这个会一闪, 然后自己消失的哦!

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后怎么看我们是否正在把本地仓库代码推送到了远程服务器上, 看一下我们对应的网站

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)


以上就是我们Git的基本使用过程

4.0 SVN使用方式

先来解释下Source Control 里不同的地方

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后现在我们编写完代码之后:

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

4.1 我们要拉取(update)远程仓库的代码

如果你不拉取, 就直接推送, 很可能把远程仓库里别人代码覆盖掉, 所以一定要先拉取

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

4.2然后确认没有错误之后, 然后提交(Commit)到远程仓库,

这个Commit跟Git中的可不一样哦!

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

4.3弹出这个界面, 选择你要推送的代码

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

这样, 我们SVN就基本使用过程


有的时候, 我们代码合乱了, 或者需要穿越回到昨天的那个代码样式怎么办? 不要怕. 代码版本管理就是为了方便我们的. 往下看

5.0 Git回滚本地代码

进入到我们本地仓库目录下

cd 仓库文件夹路径

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后我们可以看一下, 项目中代码现在是什么样子(这里就随便写了2个变量)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

然后提交到本地仓库, 拉取代码合并, 推送到远程服务器, 现在远程服务器有版本0, 版本1 和版本2的代码了(本地是版本2的), 现在我想

让本地代码进行回滚.

5.1 查看我们提交的记录

输入命令 git log --pretty=oneline

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

5.2 git reset --hard HEAD^

HEAD^回滚上次提交 (取消刚才的提交)

HEAD^^ 回滚到上次的上次的提交

输入命令运行.

HEAD is now at d490df9 (本地代码变成上次提交的时候的样子了)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)


6.0 SVN回滚代码

现在代码是这样的.

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

6.1 先进入到本地仓库下

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

6.2 查看我们的提交记录

输入命令 svn log

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

每个r后面的数字 就是一次提交的记录

6.3 回滚到某次提交的时候的代码的样子

svn update -r 数字 (数字就是那个6 5 4 3 2 1)

根据自己电脑上的数字自己选择

这里我们回滚到最初的状态

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

完成之后打开代码查看

[iOS]Xcode+GitHub远程代码托管(GIT, SVN)

最后送个福利: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000