iOS开发技巧--Git的使用
2016-04-07 00:12
537 查看
Git介绍
1. 集中式
2. 分布式
SSH密钥生成
存在 https或 ssh 协议https://git.oschina.net/ericbluce/hcxy112.git
git@git.oschina.net:ericbluce/hcxy112.git
官方网站
https://git.oschina.net/
开源中国社区成立于2008年8月,其目的是为中国的IT技术人员提供一个全面的、快捷更新的用来检索开源软件以及交流使用开源经验的平台
目前国内有很多公司会将公司的项目部署在 OSChina
与 GitHUB 的对比
1. 服务器在国内,速度更快 2. 免费账户同样可以建立 私有 项目,而 GitHUB 上要建立私有项目必须 付费 使用
注册账号
建议使用网易的邮箱,使用其他免费邮箱可能会收不到验证邮件
添加 SSH 公钥
开源中国帮助文档地址:https://git.oschina.net/oschina/git-osc/wikis/帮助#ssh-keys
1.进入终端,并输入以下命令
切换目录,MAC中目录的第一个字符如果是 `.` 表示改文件夹是隐藏文件夹 cd ~/.ssh 查看当前目录文件 $ ls
2.生成 RSA 密钥对
1> "" 中输入个人邮箱 2> 提示输入私钥文件名称,直接回车 3> 提示输入密码,可以随便输入,只要本次能够记住即可 ssh-keygen -t rsa -C "instant125@163.com"
3.查看公钥内容
cat id_rsa.pub 将公钥内容复制并粘贴至 https://git.oschina.net/profile/sshkeys[/code]
4.测试公钥测试 SSH 连接 $ ssh -T git@git.oschina.net 终端提示 `Welcome to Git@OSC, ericbluce!` 说明连接成功git常用命令
(0)打开本机隐藏文件夹命令defaults write com.apple.finder AppleShowAllFiles -bool true 本地有没有 “.git” 来判断是否是git管理的项目
(1)设置全局git账号git config --global "user.name” instant125 git config --global "user.email" instant125@163.com git config -l //查看当前电脑里的配置信息
(2)查看当前git项目的状态git status Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) //已修改文件 未提交 modified: APPGit/ViewController.m Untracked files: (use "git add <file>..." to include in what will be committed) APPGit.xcodeproj/xcuserdata/ //添加新的文件 没有授予git管理
(3)初始化本地仓库git init .
(4)把当前目录下本地文件授予git管理git add .
(5)把当前目录下的新增或者修改文件 提交到本地仓库git commit . -m "初始化项目"
(6)返回到指定的版本git reset —hard 3362e936c1a85f1dc02a2af050e3e81a8522b57a
(7)移除git管理项目的某个指定的目录git rm -rf (指定的文件夹)git初始化项目
克隆项目git clone https://git.oschina.net/ericbluce/hcxy112.git[/code]
命令行执行
(1)在https://git.oschina.net/这个网站上注册个账号并且创建一个git项目
(2)手动添加“.gitignore” 必须 在git add . 之前 添加到目录底下 (https://github.com/github/gitignore.git)
(3)克隆远程仓库到本地git clone https://git.oschina.net/ericbluce/hcxy112.git[/code]
(4)添加项目进行管理把新创建项目 放入 clone 文件夹底下 注意事项 :如果打开xcode 出现 “?”标示的文件 需要在目录执行 git add .
(5)初始化本地项目到服务器git commit . -m “初始化” git push
(6)熟练操作 文件的 删除 新增 修改提交 到本地仓库 git commit -m “提交修改” 把本地仓库 的修改 同步到远程仓库(master) git pushgit分支合并
分支修改git branch 查看项目当前有多少个分支
分支合并过程(1)git checkout 切换分支 (xiaolidev) (2)修改文件 之后 进行 git commit . -m “提交修改” (3)切换 到 到目标分支 git checkout master (4) 合并 分支修改代码 git merge xiaolidev (5)同步远程仓库(master) git push (git push origin master 提交到指定的分支)
举例
分支 master
分支 develop
分支 xiaolidevmaster 上线环境 是 工程上线 的 一个代码管理分支 ===> 运营人员 发布者 测试 develop 生产环境 所有开发者 上传代码的分支 ===> 项目经理 产品经理 测试 xiaolidev 个人开发者 ===> 开发者 xiaozhaodev 个人开发者 ===> 开发者
开发流程 xiaodev ==> develop ==> master
上班开始写代码之前在 ".git"隐藏文件的所在目录 进行"git pull"
下班之前在 ".git"隐藏文件的所在目录 进行git commit . -m "提交修改" 执行 git push
git init .
把一个空的工程 初始化成 本地仓库
注意点 : 不带 远程仓库地址信息 和 用户信息
如何做?
输入命令:cd 项目文件夹 输入命令:git remote add origin
https://git.oschina.net/ericbluce/GPProject.git 输入命令:git pull -u
origin master //从git@osc 上拉取项目 输入命令:git push -u origin master //提交项目
强制push本地代码或者文件到服务器 git push -f -u origin master
git clone https://git.oschina.net/ericbluce/GPProject.git
把远程仓库 克隆一份到本地
注意点 带有 远程仓库地址信息 和 用户信息gitignore文件的添加
新建项目
克隆项目**切换至项目目录** cd 项目目录 **克隆项目,地址可以在项目首页复制** git clone git@git.oschina.net:xxx/ProjectName.git
添加 gitignore~/dev/github/gitignore/ 是保存 gitignore 的目录 cp ~/dev/github/gitignore/Swift.gitignore .gitignore
提示:从 https://github.com/github/gitignore 获取最新版本的 gitignore 文件 添加 .gitignore 文件之后,每次提交时不会将个人的项目设置信息(例如:末次打开的文件,调试断点等)提交到服务器,在团队开发中非常重要分支问题
1 查看远程分支git branch -a
2.查看本地分支git branch
3 创建本地分支git branch 分支名
4.把分支推到远程分支创建分支 git branch test2 切换分支 git checkout test2 提交分支 git push origin test2
5 删除本地分支git branch -d xxxxx
6 删除远程分支git push origin :branch-name git push origin :test1 下载最新版本并merge到本地 git pull origin master 远程获取最新的版本到本地 test分支上 之后 再进行比较合并 git fetch origin master:tmp git diff tmp git merge tmp
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- C#分布式事务的超时处理实例分析
- Erlang分布式节点中的注册进程使用实例
- iOS开发之路--微博“更多”页面
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- C++实现的分布式游戏服务端引擎KBEngine详解
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- ASP.NET通过分布式Session提升性能
- git fork同步是什么意思?
- Spring+Mybatis+Mysql搭建分布式数据库访问框架的方法