GitHub与Git入门

1、GitHub

GitHub为开发者提供Git仓库的托管服务,能够进行代码共享、团队协同开发,建立了社会化(social coding)编程的概念。git

2、GitHub与Git的区别

开发者将源代码存入“Git”仓库,而GitHub则在网络上提供Git仓库服务。github

3、Git与SVN的区别

  1. 相同点:
    均可以进行版本管理,即管理更新的历史记录,例如记录添加或更改源代码的过程,回滚到特定阶段,恢复误删除文件等均可以进行版本管理,即管理更新的历史记录,例如记录添加或更改源代码的过程,回滚到特定阶段,恢复误删除文件等web

  2. 不一样点:编程

  • Git为集中式版本控制,只有中心服务器拥有一份代码,而Git为分布式版本控制,每一个人的电脑上就有一份完整的代码。
  • 集中式版本控制有安全性问题,当中心服务器挂了全部人都没办法工做了。
  • 集中式版本控制须要连网才能工做,若是网速过慢,那么提交一个文件的会慢的没法让人忍受。而分布式版本控制不须要连网就能工做。
  • 分布式版本控制新建分支、合并分支操做速度很是快,而集中式版本控制新建一个分支至关于复制一份完整代码。

4、GitHub的特点服务

  1. Pull Request
    开发者在本地对源码进行修改后(例如修复Bug、添加新功能),能够经过Pull Request请求仓库全部者容许把修改合并到Git仓库中。开发者在本地对源码进行修改后(例如修复Bug、添加新功能),能够经过Pull Request请求仓库全部者容许把修改合并到Git仓库中。浏览器

  2. Issue
    将一个任务或问题分配给一个Issue进行追踪、管理、交流,缓存

  3. GitHub Flavored Markdown
    在GitHub上,全部设计文字输入的地方(如Issue、评论、Wiki)均可以用Markdown语法安全

  4. News Feed
    将感兴趣的仓库添加到Watch中,就能够在News Feed及时看到仓库更新信息服务器

  5. Wiki
    经过Wiki,任何人均可以对一篇文章进行修改,经常使用于开发文档或手册的编写网络


下面咱们经过一个实例进行讲解,分为三部分:框架

  • 在Github上建立一个仓库
  • 并在本地新建一个Xcode项目
  • 把新建的Xcode项目提交到Github上的仓库

6、在Github建立Git仓库

  1. 浏览器中打开https://github.com,点击Sign up进行注册,若是已经注册则点击Sign in进行登陆,这里就不详细说注册流程了。
  2. 点击New,开始新建Git仓库
  3. 输入Git仓库初始化信息:
    Repository name:仓库名称,我通常直接使用项目名称
    Description (optional) :仓库的说明(可选填)
    Public/Private:是否公开,Private私有是收费服务,通常开源项目选择Public(若是想无偿使用私有Git,能够选择码云提供的Git服务:http://git.oschina.net
    Initialize this repository with a README:若是钩上,GitHub会自动初始化仓库并设置README文件(显示在仓库首页中的内容,通常包含项目概要、使用方法、许可协议等),让用户能够当即clone这个仓库。若是要向Github添加已有的Git仓库,建议不勾选。咱们这里不勾选。
    Add .gitignore:下拉选择,能够在初始化时自动生成.gitignore文件,gitignore文件用以记录不须要在Git仓库进行版本管理的文件。下拉菜单包含了主要的语言及框架,选择从此将要使用的便可。咱们这里不作选择。
    Add a license:下拉菜单能够选择要添加的许可协议文件。若是仓库中包含的代码已经肯定了许可协议,则选择便可。这里咱们也不作选择。
  4. 点击Create Repository完成仓库建立。

7、建立Xcode项目

Xcode建立项目时,直接勾选Create Git repository on my Mac,即在本地项目中建立了git仓库
建立项目

6、Git命令

  1. git init (初始化仓库)
    若是在上一步建立项目时,没选择建立git仓库,那么须要想经过命令初始化git仓库
git init
  1. git status (查看仓库状态)
    Untracked files后面红色部分文件为未添加到git控制下的文件。
git status

在这里插入图片描述

  1. git add
    经过“git add +文件名”,能够将指定文件加入到Git仓库暂存区中,"git add ."表示将目录下全部文件加入Git仓库暂存区。
git add .

在这里插入图片描述

  1. git commit -m ''
    将当前缓存区中的文件实际保存到仓库的历史记录中。经过这些记录,咱们就能够在工做树中恢复文件。m后面‘’中文字为提交信息,是对这个提交的概述。
git commit -m 'First commit'
  1. git remote add 添加远程仓库

将本地仓库关联到第六步建立的Github远程仓库,如图复制Github远程仓库的地址,执行git remote add <项目名称> <远程地址>
在这里插入图片描述

git remote  add origin https://github.com/dolacmeng/demo.git
  1. git push 推送到远程仓库
    执行git push命令便可将当前本地的内容推送至远程仓库origin的master分支,首次push时,添加-u origin master表示将origin仓库的master分支设置为本地仓库当前分支的upstream(上游)
git push -u origin master

此时要求咱们依次输入GitHub的用户名和密码,输入后回车等待上传完,而后咱们能够看到github上的仓库已经有咱们提交的文件:
在这里插入图片描述

  1. git clone从远程仓库克隆
    前面咱们已经把在GitHub上新建的仓库设置为远程仓库,并向这个仓库push了本地代码。如今咱们能够在新的电脑中把项目完整地克隆到本地,这样即可以让新的开发者协同开发同一个项目。
git clone https://github.com/dolacmeng/demo.git
  1. git pull拉取最新的远程仓库分支 经过git pull命令拉取Github上仓库的最新代码,便可同步其余开发中提交的代码。