SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

  • Git相比SVN,CVS,最大的特点也是优点在于提供分布式的代码管理。
  • 分支代码只有一份!log在本地!合并代码更加方便!更加安全!目录更加简洁!

基础命令;

sudo -s   获取绝对用户权限

cd xxx    进入xxx目录

ls (-a/-A)   显示当前路径下所有文件(隐藏的)

pwd       显示当前绝对路径

mkdir  xxx   创建文件夹xxx

man xxx     查看xxx命令手册



然后介绍下Git基础命令的含义;

clone   克隆远程仓库

init       初始化仓库

remote 连接远程仓库

pull      从远程仓库下拉获取新数据

push    将本地仓库新增或修改文件上传到远程仓库

add     添加文件或者修改文件,commit以及push之前使用

log      当前仓库提交过的日志信息

status  当前仓库版本状态

commit 提交到当前仓库中

branch 分支命令,相关增删查操作

checkout 使用远程仓库最后一个版本完全覆盖当前仓库内容/选择分支branch

diff      对比版本内容

merge   合并版本内容

Git 安装

  1. 安装homebrew,然后通过homebrew安装Git

终端输入 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  1. 通过Homebrew安装Git

终端输入 $ brew install git

公钥的获取与使用

  1. 生成公钥:

终端输入 $ ssh-keygen

  • 中间会让你输入生成目录,点回车默认就行。
  • 会让你输入你自己的密钥,输入的得记住以后会用到(最好跟开机密码一样,不然会忘)

  1. 获得公钥:
  1. 先cd 到存放公钥的目录

终端输入 $ ~/.ssh

  1. 获取公钥

终端输入 $ cat ~/.ssh/id_rsa.pub

公钥在github上的使用:

  1. 进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的id_rsa.pub 里的key。 
  2. 验证是否成功:

终端输入 $ ssh -T git@github.com

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github


Git的使用(基于collectionViewsample工程示范)

  1. 先定位到你想要的文件位置(就是放着你工程的那个的目录)

终端输入 $ cd /user/mac/Desktop/objc副本/collectionSample

  1. 用 git init 命令将这个目录变成可以使用git管理的仓库

终端输入 $ git init

运行:

2.将所需要的工程加入git中

终端输入 $ git add xxxx

(我的文件夹有两样东西所以加了两次)

3.用命令git commit把文件提交到仓库

终端输入 $ git commit -m "wrote a CollectionViewSample file"

5.设置username和email,因为github每次commit都会记录他们

终端输入 $ git config --global user.name "your name"

         $ git config --global user.email your_email@youremail.com

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中

6.如果不想每次连接远程仓库都输入密码的话,输入如下命令

终端输入  $ git credential-osxkeychain

7.在github创建项目

登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。

Repository name填入     ,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库

8. 本地连接到github上去

终端输入  $ git remote add origin git@github.(github帐号名/Repository name.git

9.推送本地仓库至远程仓库

终端输入  $ git push -u origin master

到此新项目上传完成。


Git常见错误

1.如果输入$ Git remote add origin git@github.com:github帐号名)/gitdemo(项目名).git

提示出错信息:fatal: remote origin already exists.

  解决办法如下:

1、先输入 $ git remote rm origin

2、再输入 $ git remote add origin git@github.com:github帐号名)/gitdemo(项目名).git

就不会报错了!

2.如果输入$ ssh -T git@github.com

    出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。

解决办法如下:

  1. 先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。

3.如果输入$ git push origin master

  1. 提示出错信息:error:failed to push som refs to .......

解决办法如下:

1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来

2、再输入$ git push origin master

  1. 如果出现报错 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.

则需要重新输入$ git remote add origin

iOS学习之git的使用的更多相关文章

  1. iOS学习路线图

    一.iOS学习路线图   二.iOS学习路线图--视频篇       阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天       学习后目标:    ...

  2. iOS学习资源个人整理

    1208更新: http://www.tuyiyi.com                                    图翼网 https://github.com/Alamofire/Al ...

  3. 2015最新iOS学习线路图

    iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...

  4. ios 学习路线总结

    学习方法 面对有难度的功能,不要忙着拒绝,而是挑战一下,学习更多知识. 尽量独立解决问题,而不是在遇到问题的第一想法是找人. 多学习别人开源的第三方库,能够开源的库一定有值得学习的地方,多去看别的大神 ...

  5. iOS 学习笔记七 【博爱手把手教你使用2016年gitHub Mac客户端】

    iOS 学习笔记七 [博爱手把手教你使用gitHub客户端] 第一步:首先下载git客户端 链接:https://desktop.github.com 第二步:fork 大神的代码[这里以我的代码为例 ...

  6. iOS学习-压缩图片(改变图片的宽高)

    压缩图片,图片的大小与我们期望的宽高不一致时,我们可以将其处理为我们想要的宽高. 传入想要修改的图片,以及新的尺寸 -(UIImage*)imageWithImage:(UIImage*)image ...

  7. 【原】iOS学习之事件处理的原理

    在iOS学习23之事件处理中,小编详细的介绍了事件处理,在这里小编叙述一下它的相关原理 1.UITouch对象 在触摸事件的处理方法中都会有一个存放着UITouch对象的集合,这个参数有什么用呢? ( ...

  8. iOS学习笔记——AutoLayout的约束

    iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...

  9. 【原】iOS学习47之第三方-FMDB

    将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 FMDB 第三方集成到工程中,具体请看博客iOS学习46之第三方CocoaPods的安装和使用(通用方法) 1. FMDB ...

随机推荐

  1. node.js基础 1之 HTTP流程实例

    好详细的说,要反复看反复使用~~~ 通过分析其中的Timing可以分析页面慢的瓶颈在哪 与上图对应: Stalled: 等待时机,浏览器要发生请求,到能发出请求的时间.不包括DNS查询和连接建立时间 ...

  2. AxureRP8实战手册(基础21-30)

    AxureRP8实战手册(基础21-30) 本文目录 基础21.     设置元件默认选中/禁用 基础22.     设置单选按钮唯一选中 基础23.     设置元件不同状态时的样式 基础24.   ...

  3. 创建用资源管理器打开FTP位置

    FTP快捷方式默认用浏览器打开,而不是用资源管理器打开,管理文件不习惯. 解决方法1:创建桌面快捷方式 新建快捷方式,键入对象位置 %windir%\explorer.exe "ftp:// ...

  4. IIS 7.5最新解析漏洞

    IIS7.5解析漏洞 http://www.cnk0n9.com/fckeditor/editor/fckeditor.html, 上传图片,浏览,上传一个aspx的一句话木马,名字为:a.aspx. ...

  5. storyboard中的三种传值

    三种传值:属性传值 block传值 以及 代理传值 (这里我用前面的页面和后面的)来表示两个控制器:LoginViewController和RegisterViewController 建立两个控制器 ...

  6. SAP SD 销售凭证如何设置字段必填

    在实际业务中,我们经常遇到需要设置某些字段是必输的.那么在SAP中创建销售订单时如何控制必填字段呢?请看操作手册 第一步:设置屏幕增强 T-CODE:shd0 上截图 1----输入需要控制的事物代码 ...

  7. [css]当父元素的margin-top碰上子元素的margin-top

    出现条件:父元素和子元素都设置了margin-top 现象:子元素的margin-top可能会失效,导致父元素和子元素粘连在一起 解决方法: 1.给父元素加padding-top:1px. 2.给父元 ...

  8. algorithm -- 选择排序

    选择排序是<导论>第一章课后习题,仿照插入排序,再次运用循环不变式来证明下算法的正确性,C++ 源码: // 交换函数 void swap( int& a, int& b ...

  9. 学习笔记 android fragment

    最近研究了一下fragment的使用方法,总结概要如下: 1.fragment实际上就是把activity拆开后的封装块,一个fragment就是一个封装好的一部分.这样以来可以方便复用. 2.fra ...

  10. java的Spring

    歇了一年都没有写过自己博客了,在学习新东西的时候 ,应该把它们记下来,学了.net 去了公司没有多久就转成了java虽然都在做,还是觉得.net好,不过东西还是应该学习下去,这样才是正解! 首先学习的 ...