App开发流程之源代码Git管理

时间:2022-06-16 02:27:03

base项目已经可以编译运行了,只不过没有实际功能而已。继续完善base项目前,我们需要考虑一下代码管理的事情了。

不管是一个人开发还是一个团队开发,对源代码进行版本管理是必须的,任何人对代码的的任何操作都可以被管理,理由还不够充分么。

以前使用过SVN,不过体验最好的,还是Git方式。

1.本地仓库简单易用,可以完全脱离远程仓库来使用
2.所有主干和分支都统一管理,切换自如
3.合并代码轻松愉快

Xcode自带代码Git管理,创建项目时候就提到过,当时有建议不采用,因为准备使用其他的管理工具。如果创建项目时候,使用了Xcode的git管理,可以通过下面两种方式修改:

方式一:
1.打开终端,输入指令:defaults write com.apple.finder AppleShowAllFiles -bool true(false 表示不显示隐藏类型的文件)
2.删除项目根目录下的隐藏文件.git
3.使用新的管理软件进行git管理

方式二:
直接将根目录下可见的文件及文件夹拷贝到新的根文件夹里,即可对该根文件夹进行版本管理。

源代码Git管理配置

管理方案:Github + SourceTree

1.前往https://github.com,注册一个账号

2.下载git客户端。Github也提供了一个客户端,直接使用账号密码登录来管理项目,下载地址:https://desktop.github.com/。也有用命令行来控制的朋友,我就不讨论了。我由于还在使用SourceTree管理其他项目,所以这里就继续采用SourceTree了。

App开发流程之源代码Git管理

使用git方式,多半都会涉及SSH key,简单记录一下生成过程。

说明一下:github客户端采用账号密码就可以验证使用者的身份,进而对自己的项目进行管理。SSH key简化了输入账号密码的流程,将SSH key加入github账号后,github授权生成该SSH key的设备可以使用git管理工具管理github上的项目。

SSH key生成及设置过程:
1.在Finder的当前用户根目录下,前往(shift+command+G)文件夹“~/.ssh”
 如果存在xxxx.pub文件,则是目标文件,用文本编辑器打开,将全部内容拷贝
 根据如下示图,找到github添加SSH key的位置:

App开发流程之源代码Git管理

如上图点击登录后页面的最右边的icon -> settings 进入设置页面

App开发流程之源代码Git管理

如上图选中SSH and GPG keys栏,点击“New SSH key”按钮,title用来描述用,key栏copy上拷贝的SSH key内容,最后点击“Add SSH key”即可。

2.如果上述文件不存在。打开终端,输入:ssh-keygen -t rsa -C "xxxx@xxxx.com",然后回车,根据提示完成操作即可。“xxxx@xxxx.com”建议为github的账号邮箱
   生成以后,按照步骤1即可。

完成上述操作以后,就可以使用SourceTree了。

到这里,我们可以选择在SourceTree中设置远程账户,先根据base项目生成本地仓库,然后根据本地仓库创建远程仓库。也可以不设置账户,先在Github上创建一个仓库名为“base”,然后使用ssh克隆到本地,再将项目文件移入其中。我使用了后者。

创建仓库

1.点击下图所示右上角加号按钮 -> new repository 出现如下页面

App开发流程之源代码Git管理

说明:输入仓库名和可选描述,类型默认公开,如果想设置为私密类型,需要付费。在此,提供另一个git仓库平台Gitlab(地址:https://about.gitlab.com/),可以免费创建私密仓库,使用方式和Github类似。

还可以勾选添加一个README文件和.gitignore文件,前者可以使得立即克隆该仓库到本地,忽略文件默认不显示,记录git仓库不管理的文件或者类型。license暂时就不没有必要添加了吧。

2.创建成功以后的页面如下图:

App开发流程之源代码Git管理

建议使用SSH验证方式克隆,点击clone or download按钮,复制字符串:xxxxxxx/base.git

3.打开本地已安装好的Sourcetree,点击“+新仓库” -> 从url克隆,出现如下界面

App开发流程之源代码Git管理

将copy的字符串作为源URL,目标路径和名称会自动填写。

我将Xcode创建的项目和SourceTree克隆下来的项目放到了同一个文件夹下,为了区别,将克隆下来的根目录重命名为“githubbase”。

完成克隆以后,将base项目复制到githubbase目录下即可。

打开这个本地仓库以后,就可以看到未暂存文件了。

App开发流程之源代码Git管理

关于SourceTree的使用,只记录如下几点:
1.勾选未暂存文件,可以加入已暂未文件列表,即成为待提交文件
2.左上角“提交”按钮,只是将修改提交到本地仓库
3.“推送”按钮即是提交到远程仓库
4.“拉取”按钮即是同步远程仓库最新代码
5.可以右键暂存文件,“忽略”此文件或者此类型,例如.xcworkspacedata
6.“分支”按钮可以创建新的分支,具体到分支或者主干版本,右键可以checkout切换当前编辑分支
7.右键到非编辑分支,可以合并入当前分支
8.右键到某个文件,可以查看修改日志
9.解决冲突可以使用外联工具
10.菜单栏SourceTree -> 偏好设置 ->通用,可以设置提交代码时候的全名和电子邮件地址作为身份标识
11.就算设置了通用身份标识,也可以为每个仓库分别设置。

App开发流程之源代码Git管理

右上角的设置 ->高级,可以设置当前仓库的用户信息

更多详细功能和操作就不一一记录了。

至此,源代码已经被管理起来。

源代码:https://github.com/ALongWay/base

App开发流程之源代码Git管理的更多相关文章

  1. git 一般的开发流程中的代码管理

    一般的开发流程中的代码管理 1. 从版本库中下载代码 git clone ssh://wenbin@192.168.1.3:29418/mustang-web 2. 针对某个feature(比如ins ...

  2. 20个可以帮你简化iOS app开发流程的工具

    这里推荐20个可以帮你简化iOS app开发流程的工具.很多开发者都使用过这些工具,涉及原型和设计.编程.测试以及最后的营销,基本上涵盖了整个开发过程. 原型和设计 有了一个很好的创意后,你要做的不是 ...

  3. iOS开发之工具篇-20个可以帮你简化移动app开发流程的工具

    如果想进入移动app开发这个领域,你总能从别的开发者或者网上或者书上找到各种各样的方法和工具,对于新手来说,还没有摸清门路就已经陷入迷茫了.这里推荐20个可以帮你简化app开发流程的工具.很多开发者都 ...

  4. app开发流程有哪些

    app开发流程是需求方和供求方相互协调的过程,一般分为需求分析.功能设计.功能实现.项目测试.上线等几个步骤,下面我们就来一起看看ytkah团队进行app开发各个流程主要做哪些事情,让您对app开发设 ...

  5. GitLab开发流程图示、Git命令一张图

    GitLab开发流程图示.Git命令一张图 一.GitLab开发流程图示 二.Git命令一张图 作图工具:ProcessOn 一.GitLab开发流程图示 二.Git命令一张图

  6. Git&Gitlab开发流程与运维管理

    Git&Gitlab开发流程与运维管理 作者 刘畅 时间 2020-10-31 实验系统版本centos7.5 主机名称 ip地址 配置 安装软件 controlnode 172.16.1.1 ...

  7. 深度讲解智能硬件手机APP开发流程

    常州做APP开发公司紫竹云科技分析,智能硬件产品的软件开发,除了APP和后台之外还有一个固件端的开发,由于固件是要运行产品上的,不过此时的硬件也是刚开始进行研发,所以是无法提供硬件来运行固件的.因此在 ...

  8. App开发流程之通用宏定义及头文件

    工欲善其事,必先利其器. 在正式实现各种炫酷的功能和UI前,做好准备工作是提高后续开发效率的必经之路. 所以,这个系列,我不是在各种堆技术,更关注的是“兵马动”之前的“粮草行”,有些繁琐,但当清晰理出 ...

  9. App开发流程之创建项目和工程基本配置

    我的开发环境为:Mac OS X EI Capitan(10.11.6),Xcode 7.3.1 首先说明一下这个项目的初衷,我并非要创建一个完整的上架应用,旨在创建一个可运行的,通用配置.架构,提供 ...

随机推荐

  1. NodeJS+Express下构建后端MVC文件结构

    关于MVC的结构大体上有两种方式,其一按照层级进行文件夹分类,其二是按照业务进行文件夹分类.关于这个demo相关的业务简单,所以暂采用第一种的方式,当然实际当中很恨复杂的项目可以采用两种方式相结合的方 ...

  2. Intellj IDEA快捷键

    Alt+回车 导入包,自动修正 Ctrl+N   查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L  格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码 ...

  3. gcc和g++的区别

    参考What is the difference between g++ and gcc? 1.The actual compiler is "cc1" for C and &qu ...

  4. UIView的动画之初步学习

    animateWithDuration:<#(NSTimeInterval)#> delay:<#(NSTimeInterval)#> options:<#(UIView ...

  5. js substr和substring的区别

    在js中substring和substr都是用来截取字符串的,substr函数和substring函数都是用来从某个“母字符串”中提取“子字符串”的函数.但用法有些差别,下面分别介绍但是它们还是有区别 ...

  6. Jmeter察看结果树的响应数据中的中文显示乱码问题处理

    1.Jmeter的察看结果树的响应数据有中文时会显示乱码,如图,我访问百度HTTP请求,响应数据中的title处是一串乱码 2.我们需要改一个设置,打开jmeter\bin\jmeter.proper ...

  7. Android Stuido代码混淆

    一.Android Studio 代码混淆基本配置首先我们要在build.gradle里设置 miifyEnabled 里改为true,表示可以混淆 proguardFiles getDefaultP ...

  8. linux 禁止22端口号

    重启防火墙命令#systemctl restart iptables.service 查看端口号#iptables -L首先修改配置文件 vi /etc/ssh/sshd_config 增加新端口号P ...

  9. ubuntu16下的&sol;etc&sol;resolv&period;conf重置的解决方案

    此文件存放了网络网关信息,重启后会刷新,刷新来源有两个可能 一个是根据文件中的resolvconf目录下的resolv.conf.d目录下的base文件 另一个来源是/etc/network/inte ...

  10. DOS命令大全(一)

    #1 一: net use \\ip\ipc$ " " /user:" " 建立IPC空链接 net use \\ip\ipc$ "密码" ...