IOS Git源代码管理工具
- .新建一个“本地仓库”
- $ git init
- .配置仓库
- 》告诉git你是谁
- git config user.name lnj
- 》告诉git怎么联系你
- git config user.email lnj@itcast.cn
- 》上面一种配置方式是一次性的配置, 会配置到被管理文件的。git文件夹下
- 》下面一种配置方式是一劳永逸的方式:
- git config --global user.name lmj
- git config --global user.email lmj@itcast.cn
- 》如何学习git指令
- >学习git指令和SVN指令的学习其实是一样的, 只不过展现的方式不太一样, git是通过使用指南的方式告诉我们某一个指令如何使用
- >这个指南其实是一个不可编辑的vim
- Q退出指南
- 按空格下一页
- control + B 上一页
- /需要搜索的内容 可以进行搜索
- git常规指令
- 》git status 查看文件状态
- 》git add 添加文件到“暂存区”
- 》git commit 文件名称 添加文件到”本地仓库“
- 注意:如果没有在commit后面加上 -m说明修改了什么, 会自动进入vim界面, 要求我们输入修改信息
- 按键盘上的 i 代表开始输入内容
- 输入完毕之后按 esc 然后按 :wq
- 所以: 如果以后在终端中提交最好在后面加上-m
- 》注意: git中的add和SVN中的add不太一样, SVN中只需要add一次, 而git中每次新建或者修改之后都需要重新add
- 》.为添加之前的颜色
- 红色 代表在”工作区“
- 》.添加到暂存区之后的颜色
- 绿色 代码在”暂存区“
- 》注意: git默认没有简写指令
- 》注意: 一般情况下不建议自定义简写指令
- 》git中的简写称之为起别名
- > 查看log
- 》git log 文件名
- 》注意: GIt中的版本号是一个”40位“的哈希值, 而SVN中的版本号是一个递增的整数
- 》已经提交
- git reset —hard HEAD^ 返回上一个版本
- 其中—hard代表强制重置
- git reset —hard 版本号(只需要写前7位)
- 》未提交
- git checkout 文件名 回退到上一次提交的版本
- git reset —hard HEAD 回退到上一次提交的版, 注意HEAD后面没有尖号^
- c9ad690 HEAD@{}: commit: main.c
- 7026f99 HEAD@{}: commit: 输出结果
- e950c89 HEAD@{}: commit: 新增输入
- c7bf91c HEAD@{}: commit: 添加变量
- cbd9e52 HEAD@{}: commit: 删除print函数
- 45ea44d HEAD@{}: commit: 添加了printf函数
- 0da06d8 HEAD@{}: commit (initial): i
- >git reflog 查看所有修改信息(所有版本)
- 》查看文件被修改的什么地方
- 】 》git diff 文件名
- 》如果显示绿色代表新增
- 》如果显示红色代表删除
- 远程仓库
- SVN需要一个单独的服务器
- Git不需要: 文件中、U盘中、云上、github、OSChina...
- .新建git远程仓库
- 》git init —bare
- 注意: 这个仓库仅仅是用于管理代码, 不参与开发
- .项目经理初始化项目
- 》.1先克隆一份空得仓库到本地
- git clone /Users/apple/Desktop/working/公司远程仓库
- 》.2忽略不需要加入版本控制器的文件以及文件夹
- .gitignore
- 注意: 配置忽略文件只需要到github上搜索.gitignore拷贝别人写好的代码即可
- 配置.gitignore一定要在和.git隐藏文件夹同一级的目录下
- 》.3生成好.gitignore文件之后, 还需要将.gitignore文件添加到版本控制
- git add .gitignore
- git commit .gitignore -m””
- 》.4新建项目
- 》 source conrol—>commit 将代码提交到本地仓库
- 》source conrol—>push 将代码提交到远程仓库
- git中默认就会创建一个分支, 这个分支叫做origin/master, 相当于svn中的trunk
- 专业人员只需要在git仓库的hooks文件夹中写一些指令, 就可以完成自动测试(压力测试、自动测试、集成测试、冒烟测试、。。。)
- 》 和SVN一样, 如果服务器仓库的代码被修改了, 我们再提交代码也会报错。
- fetch first == out of data
- 总结:
- git和svn最大的区别
- 》.git每次修改新增都需要add
- 》.git每台电脑都有一个仓库
- 》.git是先提交到本地仓库, 再提交到远程仓库
- 新人服务器搭建
- .新建一个新人服务器
- .初始化仓库
- git init --bare
- .添加一个新的远程仓库
- source control —> master —>config —>remotes —>add —> add remote
- .将经理最新的代码提交到新人服务器
- .经理分配新人服务器的地址给新人
- GIT的分支管理
- 》在本地代码库给项目打上一个标签
- git tag -a v1. -m 'Version 1.0’
- 》查看当前标签
- git tag
- 注意: 此时此刻打上的这个标签仅仅是一个本地标签。(和服务器没有关系)
- 》将标签添推送到远程代码库中
- git push origin v1.
- .开发
- .发布
- .保存稳定版本
- .继续开发
- .出现bug
- .分配员工到分支上修复bug
- >员工从服务器下载最新代码
- 》员工利用git checkout v1.0指令快速切换到1.0版本
- 》根据提示:开启一个新的分支开始修复代码
- git checkout -b .0bug_fix
- .合并修复后的代码到主线
- .备份稳定版本
- 通过Xcode将代码提交到github上, 把仓库放在github上
- =======================================================
- 》.注册一个github账号
- 》.配置SSH Keys, 只要配置了SSH Keys就可以和github无缝衔接
- 》点击昵称来到个人主页
- 》 点击主页中的设置(setting)
- 》 点击SSH Keys
- 》点击 generating SSH keys
- 》.检查本地的ssh keys
- 在“用户目录”下 ls -al ~/.ssh
- .如果文件夹不存在需要手动创建一个
- mkdir .ssh
- .根据github的提示2生成ssh keys
- 在.ssh目录下执行 ssh-keygen -t rsa -C "your_email@example.com”
- 输入完成之后连续按下回车, 知道出现牛逼的图形位置
- .生成完公钥和私钥之后输入
- ls -la查看是否生成成功 id_rsa(私钥) id_rsa.pub(公钥)
- .根据提示3获得公钥
- pbcopy < ~/.ssh/id_rsa.pub
- .点击 setting —》 ssh key —>add ssh key
- 将刚才获取到得公钥添加进去
- .更具github第4步提示, 验证公钥
- 验证成功网页上的灰色圆点会变成绿色
- .拷贝到公钥之后打开github主页
- 》点击仓库(Repositories)
- 》再点击new来到github创建仓库界面
- .通过github提供的地址下载一个空得仓库到本地
- 》创建一个新的项目到本地仓库文件夹中
- 》利用Xcode提交代码到github
- 》注意: 要求输入用户名密码时候, 输入的是github上显示的昵称而不是登录账号
- =======================================================
- 现实生活:
- 运动场 == 物理仿真器
- 跑步 == 物理仿真行为
- 人 == 仿真元素
- // 1.创建物理仿真器
- // 2.创建物理仿真行为
- // 3.将物理仿真行为添加到仿真器中
GIT本地操作
- . GIT简介(PPT)
- ================================================================================
- . GIT命令行帮助
- ================================================================================
- $ svn help
- 查看svn所有命令的帮助
- $ svn help 子命令
- # 要退出帮助信息,按"q"
- # 翻看下页,按"空格"
- # 翻看上页,按"CTRL+B"
- # 要搜索相关文字,按"/"然后输入"相关文字"
- . 创建代码库 & 配置个人信息
- ================================================================================
- > 创建代码仓库
- $ git init
- > 配置用户名和邮箱
- $ git config user.name lnj
- $ git config user.email lnj@gmail.com
- * 以上两个命令会将用户信息保存在当前代码仓库中
- # 只有配置了用户和邮箱之后,git才能识别出操作的人员信息,通过钩子(hooks)程序可以设置一些动作
- # 例如单元测试发现问题后,自动给相关人员发送电子邮件
- * 注意 暂时不建议投入一毛钱精力
- > 如果要一次性配置完成可以使用一下命令
- $ git config --global user.name lnj
- $ git config --global user.email lnj321@gmail.com
- * 以上两个命令会将用户信息保存在用户目录下的 .gitconfig 文件中
- > 查看当前所有配置
- $ git config -l
- . 实际开发
- ================================================================================
- > 创建代码,开始开发
- $ touch main.c
- $ open main.c
- > 将代码添加到代码库
- # 查看当前代码库状态
- $ git status
- # 将文件添加到代码库
- $ git add main.c
- # 将修改提交到代码库
- $ git commit -m "添加了main.c"
- 提示:
- * 在此一定要使用 -m 参数指定修改的备注信息
- * 否则会进入 vim 编辑器,如果对vim不熟悉,会是很糟糕的事情
- # 将当前文件夹下的所有新建或修改的文件一次性添加到代码库
- $ git add .
- > 添加多个文件
- $ touch Person.h Person.m
- $ git add .
- $ git commit -m "添加了Person类"
- $ open Person.h
- $ git add .
- $ git commit -m "增加Person类属性"
- * 注意 使用git时,每一次修改都需要添加再提交,这一点是与svn不一样的
- git 的重要概念及工作原理
- --------------------------------------------------------------------------------
- 工作区
- 暂存区(staged)
- 分支(HEAD)
- . 别名 & 日志
- ================================================================================
- $ git config alias.st status
- $ git config alias.ci "commit -m"
- 个人建议:除非特殊原因,最好不要设置别名,否则换一台机器就不会用了
- # 查看所有版本库日志
- $ git log
- # 查看指定文件的版本库日志
- $ git log 文件名
- # 配置带颜色的log别名
- $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
- 提示:在git中,版本号是一个由SHA1生成的哈希值
- . 版本号,让我们在任意版本之间穿梭
- ================================================================================
- # 回到当前版本,放弃所有没有提交的修改
- $ git reset --hard HEAD
- # 回到上一个版本
- $ git reset --hard HEAD^
- # 回到之前第3个修订版本
- $ git reset --hard HEAD~()
- # 回到指定版本号的版本
- $ git reset e695b67
- # 查看分支引用记录
- $ git reflog
- . 单个文件的修改管理
- ================================================================================
- # 查看文件变化
- $ git diff
- # 撤销对文件做的修改
- $ git checkout Person.h
- # 从代码库(暂存区中删除文件)
GIT团队开发操作
- . 建立代码仓库(专门用于团队开发的代码仓库)
- ================================================================================
- # 切换目录
- $ cd /Users/lnj/Desktop/git演练/公司/weibo
- # 建立空白代码库(专门用于团队开发)
- $ git init --bare
- . 项目经理准备项目(前奏)
- ================================================================================
- # 切换目录
- $ cd /Users/lnj/Desktop/git演练/经理
- # "克隆"代码库到本地
- $ git clone /Users/lnj/Desktop/git演练/公司/weibo/
- # 个人信息配置(因为要演示一台机器上的多人协作,日常开发可以忽略)
- $ git config user.name manager
- $ git config user.email manager@.com
- .gitignore
- --------------------------------------------------------------------------------
- .gitignore可以指定哪些文件不纳入版本库的管理
- 参考网址:https://github.com/github/gitignore
- # 命令行中进入与.git同级的目录
- $ cd /Users/lnj/Desktop/git演练/经理/weibo
- 将以下命令一次性粘贴到命令行中
- --------------------------------------------------------------------------------
- echo -e "# Xcode
- #
- build/
- *.pbxuser
- *.mode1v3
- *.mode2v3
- *.perspectivev3
- xcuserdata
- *.xccheckout
- *.moved-aside
- DerivedData
- *.hmap
- *.ipa
- *.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
- #
- # Pods/" > .gitignore
- --------------------------------------------------------------------------------
- # 将.gitignore添加到代码库
- $ git add .gitignore
- . 创建项目
- ================================================================================
- 提交同时"push"到远程代码仓库
- . 新人加入
- ================================================================================
- ...
- . 分布式的代码库 - 仅供参考
- ================================================================================
- 由于git是分布式的,任何一台计算机上都保留有完整的代码库的内容,因此可以把团队开发的代码库放在任何位置
- 多个远程代码库之间的同步演练"提示,此演练仅供了解,具体的使用,需要一定的团队规模之后,才能够体会"
- . 分支管理 - Tag
- ================================================================================
- # 查看当前标签
- $ git tag
- # 在本地代码库给项目打上一个标签
- $ git tag -a v1. -m 'Version 1.0'
- # 将标签添推送到远程代码库中
- $ git push origin v1.
- # 使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本
- # 签出v1.0标签
- $ git checkout v1.
- # 从签出状态创建v1.0bugfix分支
- $ git checkout -b bugfix1.
- # 查看远程分支
- $ git branch -r
- # 删除远程分支
- $ git branch -r -d origin/bugfix1.
GIT分支管理
- . 分布式的代码库 - 仅供参考
- ================================================================================
- 由于git是分布式的,任何一台计算机上都保留有完整的代码库的内容,因此可以把团队开发的代码库放在任何位置
- 多个远程代码库之间的同步演练"提示,此演练仅供了解,具体的使用,需要一定的团队规模之后,才能够体会"
- . 分支管理 - Tag
- ================================================================================
- # 查看当前标签
- $ git tag
- # 在本地代码库给项目打上一个标签
- $ git tag -a v1. -m 'Version 1.0'
- # 将标签添推送到远程代码库中
- $ git push origin v1.
- # 使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本
- # 签出v1.0标签
- $ git checkout v1.
- # 从签出状态创建v1.0bugfix分支
- $ git checkout -b bugfix1.
- # 查看远程分支
- $ git branch -r
- # 删除远程分支
- $ git branch -r -d origin/bugfix1.
GITHUB如何使用第三方库
- 如何使用/学习第三方框架?
- 优秀的第三方框架都在 github.com
- > 搜索
- > git clone 获得完整版本
- $ git clone https://github.com/AFNetworking/AFNetworking.git
- > 获取最新版本 git pull
- * 进入clone的本地文件夹
- $ git pull
- > 看github上的文档,优秀的第三方框架都有好的文档
- > 编写测试程序,看运行结果
- > 针对感兴趣的部分,看源代码
- > 有问题去http://stackoverflow.com
静态库
- . 为什么要做静态库
- ================================================================================
- > 国内的企业,掌握有核心技术,同时是又希望更多的程序员来使用其技术,因此采用"闭源"的方式开发使用
- 例如:百度地图,友盟,JPush等
- > 在企业开发中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,也会提供静态库给程序员使用
- . 静态库的特点
- ================================================================================
- .a + .h
- . 静态库简单演练
- ================================================================================
- > 新建CZTools项目
- > 创建一个类方法,实现一个简单的加法
- > 编译
- # 注意,在编译静态库时,需要编译两个版本 -> 真机(arm) | 模拟器(i386)
- > 新建项目将编译生成的.a + .h拖到项目中使用
- . 静态库中的资源包的使用
- ================================================================================
- 问题:有些第三方库会使用到一些图片素材,例如公司的logo等。
- 但是由于Xcode默认在编译时会把所有的素材文件导入到mainBundle中,为了避免与使用静态库的程序冲突。
- 在静态库中如果要使用图片素材,会利用bundle的手段
- > 建立bundle,并且向其中添加图片
- > 创建一个类方法,返回图片
- > 编译
- > 调用方如果需要使用,需要导入 .h + .a + XXX.bundle
- . 静态库中的自定义视图
- ================================================================================
- 问题:程序需要测试
- 静态库如何测试呢?
- 创建复合项目
- > 复习块代码传值
- . 静态库的使用
- ================================================================================
- 新建项目将编译生成的.a + .h拖到项目中使用
- . 静态库的种类
- ================================================================================
- 静态库文件的版本(4种)
- .真机-Debug版本
- .真机-Release版本
- .模拟器-Debug版本
- .模拟器-Release版本
- 调试版本 VS 发布版本
- --------------------------------------------------------------------------------
- - 调试版本会包含完整的符号信息,以方便调试
- - 调试版本不会对代码进行优化
- - 发布版本不会包含完整的符号信息
- - 发布版本的执行代码是进行过优化的
- - 发布版本的大小会比调试版本的略小
- - 在执行速度方面,调试版本会更快些,但不意味着会有显著的提升
- . 静态库的合并
- ================================================================================
- # 检测.a的类型
- $ lipo -info libCZTools.a
- # 合并.a
- lipo -create Debug-iphoneos/libCZTools.a Debug-iphonesimulator/libCZTools.a -output libCZTools.a
- # 合并.a的好处,开发过程中既可以在真机上调试,也可以在模拟器上调试
- # 合并.a的坏处,如果静态库太大,合并打包后,会非常大,因此很多第三方的静态库的.a是区分版本的
- # 今后在使用.a时一定注意版本
IOS Git源代码管理工具的更多相关文章
- Git 源代码管理工具
Git 源代码管理工具 Git基本信息 Git :Git是一个“分布式”的版本控制工具 Git的作者是Linux之父 Linus Benedict Torvolds,当初开发Git仅仅是为了辅助Lin ...
- git源代码管理工具
git是一款源代码管理工具 是分布式版本管理工具 分布式管理必须先在本地提交然后才能提交到服务器: svn集中式版本管理工具 集中式版本管理工具离开服务器就做不了版本管理: 初始化仓库 1.用git初 ...
- IOS SVN源代码管理工具使用
01. 源代码管理工具概述(PPT)===================================================* 源代码管理工具的作用:# 能追踪一个项目从诞生一直到 ...
- VS2015 Git 源代码管理工具使用记录
1. 首先到源代码托管平台申请个账户:https://git.oschina.net/ 2.创建流程图: 2.1 开始创建项目: 2.2 3. 4.
- iOS核心笔记—源代码管理工具-GIT
源代码管理工具-GIT 一. git 概述 1. git 简介? 什么是git? > git是一款开源的分布式版本控制工具 > 在世界上所有的分布式版本控制工具中,git是最快.最简单.最 ...
- iOS源代码管理工具
源代码管理工具简介 1.为什么会出现源代码管理工具? 为了解决在软件开发过程中,由源代码引发的各种蛋疼.繁琐的问题 2.源代码管理不当可能会引起的后果? 无法后悔:做错了一个操作后,不能回到之前的操作 ...
- 源代码管理工具-GIT
源代码管理工具-GIT ---- 一. 掌握 - git 概述 1. git 简介? 什么是git? git是一款开源的分布式版本控制工具在世界上所有的分布式版本控制工具中,git是最快.最简单.最流 ...
- iOS核心笔记—源代码管理工具-SVN
源代码管理工具-SVN 一. 源代码管理工具概述 1. 源代码管理工具的作用? > 能追踪一个项目从诞生一直到定案的过程 > 记录一个项目的所有内容变化,无限制返回 > 查看特定版本 ...
- 源代码管理工具GIT
01.GIT简介 svn是集中式的源代码管理工具,必须联网才能操作 git是分布式的. 有两中:一个是本地代码仓库,一个是远程代码仓库 分布式源代码管理工具 02.GIT - 本地代码仓库使用流程 1 ...
随机推荐
- hdu-4513吉哥系列故事——完美队形II--最长回文
吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)To ...
- Linux系统调用接口添加简单示例
1. Linux体系结构 Linux系统的地址空间分为用户空间和内核空间,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移. 2. 系统调用接口 ① 一般情况下,用户进程不能访问内核空间.Li ...
- springmvc接收各种参数
转载:https://blog.csdn.net/lutinghuan/article/details/46820023
- git只clone仓库中指定子目录和指定文件的实现
## step :初始化空库 [root@vm_test backup]# mkdir devops [root@vm_test backup]# cd devops/ [root@vm_test d ...
- Vue.js-----轻量高效的MVVM框架(七、表单控件绑定)
话不多说,先上完整代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- Linux进程间通信的几种方式
1.管道及有名管道(pipe & named pipe) pipe 用于亲缘关系的进程间通信,named pipe除了pipe的功能外,还可以进行无亲缘关系进程间的通信. 2.信号(Signa ...
- Android studio配置push commits
最近更新了Android studio到3.2.1最新版本 我们代码用的是Git来管理,提交代码用Android studio自带,发现最新版本的push commits不能保存 把默认的develo ...
- animition动画的加入
很多时候我们把PopupWindow用作自定义的菜单,需要一个从底部向上弹出的效果,这就需要为PopupWindow添加动画. 在工程res下新建anim文件夹,在anim文件夹先新建两个xml文件 ...
- IPM的修炼之路
总结了一下最近一年半来看到的产品经理方面的素养资料. 产品经理: 必备素质:市场洞察,抽象概括,创新想象,心思细腻,热爱产品,具备一定的企业家精神等. 是通才:市场,项目,设计,管理,用户,统计,心理 ...
- GET和POST区别和用法
很多人都分不清GET与POST的区别,以及什么时候用GET?什么时候用POST? GET和POST两种方法都是将数据送到服务器,但你该用哪一种呢? HTTP标准包含这两种方法是为了达到不同的目的.PO ...