github简介

前言

学习使我快乐

一。git与github关系

git是一个版本控制工具
github是一个用git做版本控制的项目托管平台。

二。git与svn的区别

Git是由著名Linux内核(Kernel)开发者LinusTorvalds为了便利维护linux而开发的。

git是一个分布式的版本控制系统。作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

1. Git是分布式的,SVN不是,SVN是集中式:分布式模式,就是每个开发人员从中心版本库/服务器上check out代码后会在自己的机器上克隆一个自己的版本库

2.SVN的工作区和版本库是截然分开的,而Git的工作区和版本库是如影随形的:SVN的版本库和工作区是存储在不同的路径下,一般是在不同的主机中。

3.Git把内容按元数据方式存储,而svn是按文件:.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上的所有的东西,例如标签、分支、版本记录等。

4.版本号:Git没有一个全局的版本号,而SVN有。SVN每一次提交都具有整个版本库全局唯一的版本号。Git的版本号则更进一步,版本号是全球唯一的。SVN的版本号是连续的版本号,每一次新的提交都会版本号+1. Git对于每一次提交,通过对文件的内容或目录的结构计算出一个SHA-1哈希值,得到一个40位的十六进制字符串,Git将此字符串作为版本号。

5.Git的内容完整性要优于SVN:Git的内容存储使用的是SHA-1哈希算法,这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

6.版本库(repository):SVN只能有一个指定中央版本库,当这个中央版本库有问题时,所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成。而Git可以有无限个版本库,或者每一个Git都是一个版本库,区别是它们是否拥有活动目录。

7.系统档案:SVN会在每一个目录放一个.svn,如果想移除这些.svn是很累的(最新版本的svn只有在根目录有.svn,子目录没有了)。而Git会在目录起点拥有一个.git目录。

8.重新设立起点(rebase):在Git,如果你想把别人的最新提交设立为现在这个分支的起点,只要执行git rebase branch_name即可。这个和合并(merge)不同的是,merge会依据修改的时间视为最新,而rebase会要求你去解决双方都有修改过的地方的矛盾(confict).

9.Git是压缩后传输,svn是一个一个文件传输,所以git的网络流量比svn少很多。

10.部分检出(checkout):SVN可以将整个库检出到工作区,也可以将某个目录检出到工作区。但是Git只能全部检出,不支持按照目录进行的部分检出。在SVN中,从仓库checkout的一个工作树,每个子目录下都维护着自己的.svn目录,记录着该目录中文件的修改情况以及和服务器端仓库的对应关系。Git没有部分检出,这并不是说只有将整个库克隆下来才能查看文件。

11.更新:在SVN中,因为只有一个中心仓库,所以所谓的远程更新,也就是svn update,通过此命令来使工作区和版本库保持同步。Git使用git fetch和git pull来完成远程更新任务。fetch操作只是将远程数据库的object拷贝到本地,然后更新remotes head的refs,git pull的操作则是在git fetch的基础上对当前分支外加merge操作。

12.提交(commit):在SVN,当你提交你的代码时,它将直接记录到中央版本库。当你发现你的代码存在严重问题时,你已经无法阻止事情的发生。如果网络中断,你根本没办法提交。对于SVN来说,所有的commit操作都可以认为是对远程仓库的更新动作。在工作区中对文件进行添加(add)、修改、删除(delete)操作要同步到版本库,必须使用commit命令。而Git的提交完全属于本地版本库的活动。而你只需”推”(git push)到主要版本库即可。Git的”推”其实是在执行”同步”(Sync)。在Git中,要将一个文件纳入版本管理的范畴,首先是要用git add将文件纳入stage(暂存区域,介于workcopy和版本库head版本的一种中间状态)的监控范围,只有更新到stage中的内容才会在commit的时候被提交。Git的stage让你在提交的时候清楚的知道git将要提交哪些改动。

13.分支(branch):在SVN,分支是一个完整的目录,且这个目录拥有完整的实际文件。而Git,每个工作成员可以任意在自己的本地版本库开启无线个分支。Git的分支相当简单,你可以从同一个工作目录下快速的在几个分支间切换,很容易发现未被合并的分支,能简单而快捷的合并这些文件。Git中的分支实际上仅是一个包含所指对象校验和(40个字符长度SHA-1哈希值)的文件,新建一个分支就是向一个文件写入41个字节(版本号加一个换行符),自然速度很快。Git的实现与项目负责度无关,它永远可以在几毫秒的时间内完成分支的创建和切换。Git的分支是完全隔离的,而SVN则没有。Git的里程碑是只读的,Git完全遵守历史不可更改这一时空法则。用户不能向git的里程碑中提交,否则里程碑就不是标记,而成了一个分支。SVN中提供了一个功能switch,使用switch可以在同一个工作树上,在不同的分支中进行切换。Git在分支中进行切换使用的命令是checkout.

14.优缺点:SVN优点:(1)、管理方便、逻辑明确,符号一般人思维习惯;(2)、易于管理,集中式服务器更能保证安全性;(3)、代码一致性非常高;(4)、适合开发人数不多的项目开发。SVN缺点:(1)、服务器压力太大,数据库容量暴增;(2)、如果不能连接到服务器上,基本上不可以工作,就不能提交、还原、对比等等;(3)、不适合开源开发,但是一般集中式管理的有非常明确的权限管理机制,可以实现分层管理,从而很好的解决开发人数众多的问题。Git优点:(1)、适合分布式开发,强调个体;(2)、公共服务器压力和数据量都不会太大;(3)、速度快、灵活;(4)、任意两个开发者之间可以很容易的解决冲突;(5)、离线工作。Git缺点:(1)、学习周期相对而言比较长;(2)、不符合常规思维;(3)、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

时间: 2024-10-12 08:05:02

github简介的相关文章

GitHub 简介与优势

GitHub 简介 Git 是一个优秀的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状态可以是不同的文件,也可以是不同的文件内容.在一个分布版本控制系统中,每个人都有一份完整的源代码(包括源代码所有的历史记录信息),而且可以对这个本地的数据进行操作.分布版本控制系统不需要一个集中式的代码仓库. GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. GitH

Git&GitHub简介与入手(一)

一.Git版本控制 1.集中式版本控制工具:SVN(版本控制集中在服务器端,会有单点故障风险): 2.分布式版本控制工具:Git: 3.Git简史 Talk is cheap, show me the code.(Linus) 4.https://git-scm.com/ 官网下载安装git (后面均使用默认设置): 二.Git&GitHub简介 1.Git的结构与GitHub的关系 2.Git&GitHub---本地库与远程库的交互方式 (1)团队内的合作 (2)跨团队协作 三.Git命

git 和github简介

关于github不清楚的可以百度, 在这里,可以创建一个新的仓库 点击Create repository后会出现下面这些信息,其中第一块是仓库的url链接 第二块是你在本地目录中创建一个READEME.md文件,然后进行初始化,在add和commit提交到分支,然后再关联仓库,最后通过push 推送本地代码到github. 第三块其实就是已创建了本地仓库的前提下,执行第二块后面两行命令,推送代码到github $ git remote add origin [email protected]:L

GitHub 简介

Git 是一个优秀的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状态可以是不同的文件,也可以是不同的文件内容.在一个分布版本控制系统中,每个人都有一份完整的源代码(包括源代码所有的历史记录信息),而且可以对这个本地的数据进行操作.分布版本控制系统不需要一个集中式的代码仓库. GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. GitHub 于 2008

GitHub入门教程

GitHub简介参见:百度百科 1.首先在https://github.com/上注册一个账号. 2.注册成功以后,新建一个repository(仓库). 新建界面如下: 输入项目名称,其他全部默认即可 创建成功后,浏览器跳转到一个新页面,如下: 红色标注的地址要记住 接下来要用到. 这里提示你如何通过命令行提交项目到你刚才新建的Repository.刚才新建Repository的时候,就生成了一个唯一的地址, 在本示例中是:https://github.com/itmyhome2013/myg

Github Pages 搭建个人博客

1.Github简介 Github很好的将代码和社区联系在了一起,于是发生了很多有趣的事情,世界也因为他美好了一点点.Github作为现在最流行的代码仓库,已经得到很多大公司和项目的青睐,比如jQuery.Twitter等.为使项目更方便的被人理解,介绍页面少不了,甚至会需要完整的文档站,Github替你想到了这一点,他提供了Github Pages的服务,不仅可以方便的为项目建立介绍站点,也可以用来建立个人博客. Github Pages有以下几个优点: 轻量级的博客系统,没有麻烦的配置 使用

github 创建新项目

二.GitHub简介 GitHub 可以托管各种Git版本库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性.为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并.已经有人将GitHub称为代码玩家的MySpace.GitHub主要用Rails实现.在下面的章节

迈向开源的第一步:github

1.github简介         GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目.它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath.PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成. GitHub同时提供付费账户和为开源项目提供的免费账户.根据在2009年的Git用户调查,GitHub是最流行的Git访问站点.[2]除了允许个人和组织创建和访问代码库以外,它也提供

【学习】搬进Github

学习参考 萌码 一.Github简介和基本操作 Github 上操作基本上围绕一个个项目展开.项目就是一个文件夹,在github中成为“仓库”(repository),里面放着所有的项目文件,可以是代码,也可以是任意的文档.项目不仅保存着最新版本的代码,还保存着历史版本和修改记录. 日常操作都在dashboard (控制面板),点github页面左上角的小猫进入. 然后点绿色的按钮新建项目 勾选Initialize...然后Create... commit动词讲就是保存版本,名词讲就是版本.修改