当前位置: 首页 > 编程日记 > 正文

GitHub与Git入门

一、GitHub

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

二、GitHub与Git的区别

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

三、Git与SVN的区别

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

  2. 不同点:

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

四、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上的仓库

六、在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完成仓库创建。

七、创建Xcode项目

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

六、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上仓库的最新代码,即可同步其他开发中提交的代码。

相关文章:

《UML大战需求分析》阅读笔记1

通过阅读本书的序和第一章&#xff0c;让我对于UML的理解更加深刻了&#xff0c;并且懂了怎样把你UML学的更好。 作者先让我们明白什么是UML&#xff0c;大概知道了UML各个图的形态和各种用途&#xff0c;然后再详细的介绍各个图怎样使用。 UML是个非必要的建模工具&#xff0c…

裸奔的支付X聊天,你还敢用吗?

“ 一直想在社交领域突破的某付宝&#xff0c;却自始至终对社交功能如此的不用心&#xff0c;让用户的数据在网络中裸奔&#xff0c;使用户不寒而栗。”没错&#xff0c;这篇文章要说的就是BAT中A家的支付X&#xff0c;那个千方百计做社交的支付工具。如果你使用了它的聊天窗口…

MVC3项目依赖文件错误解决

MVC3的项目依赖分为两大类&#xff1a; 1、ASP.NET Web Pages 2、ASP.NET MVC 3 如果没有正确引入&#xff0c;或者项目的版本有错误会出现程序集引用错误。 在服务器上部署时&#xff0c;解决思路如下&#xff1a; 1、下载MVC3的安装包&#xff0c;然后在服务器上安装&#xf…

让自己的开源项目支持CocoaPods集成

平时我们会经常用CocoaPods集成第三方库&#xff0c;那如何使自己的代码也可以通过CocoaPods集成呢&#xff1f;只需要简单几步&#xff1a; 创建git仓库&#xff0c;把代码提交到Github或码云等在git仓库中创建.Podspec文件&#xff0c;修改里面的配置&#xff08;如代码的版…

由于客户端检测到一个协议错误 代码0x1104

重新连接N次都还是这个错误提示&#xff0c;最后再重起电脑&#xff0c;还是没用。研究了一下错误终于解决了。 首先检查远程连接端口对不对&#xff1f;Windows远程默认的连接端口是3389&#xff0c;一般大家连接时直接输入IP或域名就可以连接了。如果还要加:端口号的话&#…

使用Fiddler抓取手机HTTP流量包

“ Fiddler手机流量抓包实战。”Fiddler作为一个PC端的HTTP/HTTPS协议分析工具&#xff0c;不仅能够抓取PC上的流量&#xff0c;还能作为代理&#xff0c;抓取手机流量&#xff0c;在之前的文章《使用Fiddler进行HTTP流量分析》中介绍了Fiddler的基本用法&#xff0c;本文介绍如…

Spark Steaming 点滴

Spark Streaming 模块是对于 Spark Core 的一个扩展&#xff0c;目的是为了以高吞吐量&#xff0c;并且容错的方式处理持续性的数据流。目前 Spark Streaming 支持的外部数据源有 Flume、 Kafka、Twitter、ZeroMQ、TCP Socket 等。Discretized Stream 也叫 DStream) 是 Spark S…

CocoaPods远程私有库

上一篇&#xff08;让自己的开源项目支持CocoaPods集成&#xff09;介绍了将自己开发的框架代码发布到Cocoapods&#xff0c;全球的开发者都可以通过pod search搜索到我们的框架代码以及通过pod install进行安装。但有时候我们希望只有我们项目内部的人才可以集成和修改&#x…

大数据平台的秘密

大数据&#xff0c;这个词越来越热&#xff0c;很多人都在谈大数据&#xff0c;其实很多张口闭口大数据的人&#xff0c;或许都不知道数据是如何产生、传递、存储、运算到应用。有段时间&#xff0c;看到一些大数据文章&#xff0c;就感觉纯属凑热闹&#xff0c;小数据都没搞明…

Fiddler使用技巧:强大的数据文本编解码功能

“ 郑重推荐Fiddler工具自带的TextWizard功能。”Fiddler作为一个HTTP类协议的抓包分析工具&#xff0c;之前已介绍过抓包分析功能&#xff0c;可参考文章&#xff1a;《使用Fiddler进行HTTP流量分析》《使用Fiddler抓取手机HTTP流量》在抓包分析功能之外&#xff0c;我们一定不…

jquery validate 详解一

jQuery校验 官网地址&#xff1a;http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入js库 <script src"../js/jquery.js" type"text/javascript"></script><script src"../js/jquery.validate.js" type"…

安装VMWare tools,以及解决安装后/mnt中有hgfs但没共享文件的方法

一、首先是安装VMWare tools安装过程可参考&#xff1a;http://www.cnblogs.com/jiu0821/p/7559949.html二、解决安装VMWare tools后/mnt中有hgfs但没共享文件 前提&#xff1a;在虚拟机软件中设置了共享目录 此时在linux中进入 /mnt/hgfs 文件夹&#xff0c;但发现共享的文件没…

音乐(文件)断点下载

这篇文章介绍音乐等文件的下载&#xff0c;支持断点续传。 我们需要创建两个类 HYDownLoader&#xff1a;音乐下载的主类&#xff0c;可以进行新建下载、暂停下载、取消下载等。 HYFileTool&#xff1a;文件管理类&#xff0c;主要为HYDownLoader服务&#xff0c;可以判断文件…

php设计模式

原型模式&#xff08;prototype&#xff09; PHP设计模式之&#xff1a;原型模式 刚刚了解了原型模式&#xff0c;通过资料以及自身了解整合以下资料&#xff1a; 原型模式通过复制已经存在的实例来返回新的实例&#xff0c;而不是新建实例&#xff0c;并且原型&#xff08;被复…

TextKit及应用

在iOS开发中我们常常使用UIKit的UITextView、UITextField、UILabel来显示文字。它们底层都是基于一个叫做TextKit的强大引擎。通过TextKit&#xff0c;我们可以方便地修改文字的样式和排版&#xff0c;而不需要直接操作复杂的Core Text。 1.什么是TextKit 在iOS7中&#xff0c…

判断类之间的父子关系

如何判断两个类之间的父子关系&#xff1f; java为我们提供了instanceof运算符&#xff0c;可以用来判断一个对象是否是否个类的实例&#xff0c;所以很容易的想到子类的对象肯定是父类的实例。但是如何所涉及到的类是不可实例化的该怎么办呢&#xff1f;好在java的Class为我们…

顺F速运,你被爱加M坑了

“ 顺F速运APP安全性分析。”之前的文章《Wireshark分析实战&#xff1a;某达速递登录帐号密码提取》对某达速递的APP进行了分析&#xff0c;该APP将数据完全暴露于网络流量中。于是对快递行业老大顺F速运的APP进行了分析&#xff0c;发现该APP质量还算上乘&#xff0c;但是&am…

[大数据之Spark]——Actions算子操作入门实例

Actions reduce(func) Aggregate the elements of the dataset using a function func (which takes two arguments and returns one). The function should be commutative and associative so that it can be computed correctly in parallel. 这个方法会传入两个参数&#x…

Runloop总结

1.什么是Runloop Runloop字面上翻译就是运行循环&#xff0c;也就是一直在转圈圈运行着&#xff0c;类似于do…while()。我们思考一个问题&#xff1a; 一个线程执行完成后就会退出&#xff0c;当我们启动一个iOS APP时&#xff0c;系统会调用main.m文件的main()函数: int m…

Android拷贝工程不覆盖原工程的配置方法

http://www.2cto.com/kf/201203/125131.html 在Eclipse中改包名的时候选择refactor-->rename,勾选Rename subpackages,这样就不需要一个个修改每个类中导入的包名了转载于:https://www.cnblogs.com/leihupqrst/p/3670224.html

顺F速运国际版,你的密码漏点了

“ 对顺F旗下各APP顺藤摸瓜分析——顺F速运国际版。”前文《顺F速运&#xff0c;你被爱加M坑了》提到&#xff0c;顺F速运APP使用爱加密加壳&#xff0c;流量中传输内容被加密并BASE64编码了&#xff0c;只是安全性不够&#xff0c;壳没有将顺丰的加密算法及密钥保护好。秉承避…

利用Injection插件加快Xcode编译速度

我们在调试iOS原生代码时&#xff0c;每次修改都需要CommandR来重新编译运行。当项目代码量很大&#xff0c;编译时间就会很漫长。因此对于开发中来说&#xff0c;如果能加快编译速度&#xff0c;能大大提高生产效率。如果我们能像Swift Playground、小程序或网页那样修改代码后…

存储过程的优缺点 (转载)

为什么要用存储过程 几个去 IBM 面试的兄弟回来抱怨&#xff1a;去了好几个不同的 IBM 项目组&#xff0c;几乎每个面试官问到数据库的时候都要问用没用过存储过程&#xff0c;烦人不&#xff1f;大家去面的程序员&#xff0c;又不是 DBA&#xff0c;以前的项目都没有用到存储…

计算机知识的学习

我不是计算机科班出生&#xff01; 大学里喜欢跟医电系的人混在一起&#xff0c;受到他们影响较多&#xff0c;开始喜欢上计算机&#xff01;win 98 Office 97 他们有的擅长C、有的擅长Flash、还有哥们喜欢硬件&#xff01; 西安的东六路是图书批发市场&#xff0c;我几乎每周…

Wireshark小技巧:将IP显示为域名

“ 本文介绍如何使Wireshark报文窗口的Source栏及Destination内的IP直接显示为域名&#xff0c;提升报文分析效率。” 一个典型的Wireshark界面如下&#xff1a; 从这个图里&#xff0c;能看到源IP及目的IP&#xff0c;在流量不大&#xff0c;数据不多的情况下&#xff0c;我…

个人学习某个系统或平台的3问式的整理和细化指引

i:三问&#xff1a;是什么&#xff1f;为什么&#xff1f;怎么样&#xff1f; ii:详细化问题指引&#xff1a;是什么的目的在于确定系统的大致范围&#xff0c;明确目标&#xff1a;->平台的主要功能是什么&#xff1f;业务流程是怎样的&#xff1f;业务范围有多大&#xff…

给iOS开发者的React Native入门使用教程

目录一. 原生iOS项目集成React Native二. 原生跳转RN页面三. 显示豆瓣热门电影列表四. 改为导航五.完整源代码一. 原生iOS项目集成React Native 创建一个新的文件夹&#xff0c;如RNProject&#xff0c;然后新建一个/ios的子文件夹&#xff0c;将已有的iOS项目全部文件复制进去…

PHP Memcached应用实现代码

肖理达 (KrazyNio AT hotmail.com), 2006.04. 06, 转载请注明出处 一、memcached 简介 在很多场合&#xff0c;我们都会听到 memcached 这个名字&#xff0c;但很多同学只是听过&#xff0c;并没有用过或实际了解过&#xff0c;只知道它是一个很不错的东东。这里简单介绍一下&a…

顺F分享,你是在裸奔吗?

“ 对顺F旗下各APP顺藤摸瓜分析——顺F分享。”前文对顺F速运和顺F速运国际版进行了分析&#xff0c;二者使用同一套接口&#xff0c;虽然保护强度不高&#xff0c;但对代码和数据的保护却区别对待&#xff0c;实在让人诧异。秉承避免浪费的原则&#xff0c;我们将持续对顺F旗下…

静态链接库与动态链接库 (二)动态链接库的编译与使用

上一篇文章里大概描述linux下静态链接库的编译与使用&#xff0c;下面讲动态链接库的编译与使用方法。 1. 什么是动态链接库 所谓动态链接库&#xff0c;是指编译的时候不会把程序引用到的库插入到执行程序里&#xff0c;而是在执行时候才会去加载相关的库&#xff0c;所有用到…