github简介

author author     2022-09-14     330

关键词:

前言

学习使我快乐

 

一。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)、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

github简介

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在... 查看详情

github简介

前言学习使我快乐 一。git与github关系git是一个版本控制工具github是一个用git做版本控制的项目托管平台。 二。git与svn的区别Git是由著名Linux内核(Kernel)开发者LinusTorvalds为了便利维护linux而开发的。git是一个分布式的版本... 查看详情

git和github简介

关于github不清楚的可以百度, 在这里,可以创建一个新的仓库 点击Createrepository后会出现下面这些信息,其中第一块是仓库的url链接第二块是你在本地目录中创建一个READEME.md文件,然后进行初始化,在add和commit提交到分... 查看详情

初识github·简介篇(代码片段)

1前言GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨... 查看详情

git简介

一、注册github账号github网址https://github.com/下一步然后,你的邮箱会收到一封邮件,进行邮箱验证就行了 二、创建github仓库 登录你的github,在首页的右方可以看到下图所示(我已经创建过项目了,没有创建过项目的显示... 查看详情

简介和资料收集

参考:https://github.com/google/cadvisorhttps://github.com/coreos/flannelhttps://github.com/etcd-io/etcdhttps://github.com/kubernetes/kuberneteshttps://github.com/rootsongjc/kubernetes-handbookhttps://kubernetes.io/https://jimmysong.io/istio-handbook/https://github.com/cloudnativelabs/kube-shellh... 查看详情

github上排名前100的objective-c项目简介

主要对当前GitHub排名前100的项目做一个简单的简介,方便初学者快速了解到当前Objective-C在GitHub的情况. 项目名称项目信息1. AFNetworking作者是NSHipster的博主,iOS开发界的大神级人物,毕业于卡内基·梅隆大学,开源了许多牛... 查看详情

38.dockercloud简介及关联github

1.概念  提供容器的管理,编排,部署的托管服务2.功能  image管理  创建stack  创建服务service  添加节点作为dockerhost   自动关联云服务商AWS Azure3.运行模式  standard模式:一个node就是一个dockerhost  swarm模... 查看详情

github+jenkins持续集成简介

DevOps(英文Development(开发)和Operations(技术运营)的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰... 查看详情

git简介

...用以有效、高速的处理从很小到非常大的项目版本管理。GitHuB是一个基于Git的远程文件托管平台。如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。使用场景:  无GitHub:在本地.git文件内维护历时... 查看详情

前端模板nunjucks简介

参考资料: https://mozilla.github.io/nunjucks/https://mozilla.github.io/nunjucks/templating.htmlhttps://mozilla.github.io/nunjucks/api.html 常用APIrendernunjucks.render(name,[context],[callback])va 查看详情

.简介(代码片段)

翻译项目请关注Github上的地址:GitHub-msdx/gradledoc:Gradle中文文档 。本文翻译所在分支: https://github.com/msdx/gradledoc/tree/2.14.1。更好的阅读体验请访问:http://gradledoc.githang.com/2.14.1/userguide/http://gradled 查看详情

github上排名前100的objective-c项目简介

项目名称项目信息1. AFNetworking作者是NSHipster的博主,iOS开发界的大神级人物,毕业于卡内基·梅隆大学,开源了许多牛逼的项目,这个便是其中之一,AFNetworking采用NSURLConnection+NSOperation,主要方便与服务端API进行数据交换,操作简单,功... 查看详情

git,github和gitlab简介和基本使用

什么是GitGit是一个版本控制系统(VersionControlSystem,VCS)。版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。多年前,我在法国做第一个实习时(2011年),那时候自己编程还在入门阶段,根... 查看详情

github介绍与使用

GitHub简介GitHub基本功能GitHub基础使用1.Github简介  GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。  GitHub于2008年4月10日正式上线,除了 Git 代码仓库托管及... 查看详情

hexo+github搭建个人博客(代码片段)

Hexo+Github搭建个人博客目录目录目录1.简介环境简介2.Github仓库创建和配置2.1创建Git仓库2.2配置git仓库2.3把本地公钥添加到github中3.Node安装4.Hexo安装及配置4.1安装hexo4.2初始化hexo文件夹4.3Hexo操作4.4将git库和hexo链接起来5.创建博客文... 查看详情

swifter.json简介(代码片段)

...。今天给大家介绍另外一款json的序列化工具Swifter.Json。GitHub地址:https://github.com/Dogwei/Swifter.Json/wikiWiki地址:https://github.com/Dogwei/Swifter.JsonSwifter.Json强大之处1:支持.Net已知 查看详情

leakcanary内存泄漏监测性能优化简介原理(代码片段)

LeakCanary内存泄漏监测性能优化简介原理GitHub:https://github.com/square/leakcanaryDemo地址:https://github.com/baiqiantao/LeakCanaryTest.git目录目录简单使用更多介绍自定义LeakCanary测试案例ApplicationMainActivity静态成员导致的内存泄漏单例导致的内... 查看详情