您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

Github入门使用指南

时间:2020-01-28 10:52:05  来源:  作者:

1 Git的诞生

很多人都知道,Linus在1991年创建了开源的linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。

Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?

事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。

Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。

Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,php,Ruby等等。

历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

git与github的交互:

Github入门使用指南

 

2 安装git bash工具

要使用git及与github交互,需要使用一个命令行工具bit bash,下载并安装它。

3 初始化本地库

通过clone远程仓库或本地创始化,会创建一个.git文件夹(隐藏属性)。

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

4 修改本地库

先对readme.txt做个修改。

然后,在工作区新增一个LICENSE文本文件(内容随便写)。

用git status可以查看状态。

5 添加文件到暂存区

使用两次命令git add,把readme.txt和LICENSE都添加。

现在,暂存区的状态就变成这样了:

 

Github入门使用指南

 

6 将暂存区的修改提交到分支

git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的。

现在版本库变成了这样,暂存区就没有任何内容了:

Github入门使用指南

 

7分支管理

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

所以,团队合作的分支看起来就像这样:

Github入门使用指南

 

8 添加远程库

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

9 本地仓库关联远程库

$ git remote add origin https://github.com:michaelliao/learngit.git

或者:

$ git remote add origin git@github.com:michaelliao/learngit.git

10 本地库的所有内容推送到远程库

$ git push -u origin master

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样。

把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!

ref

https://github.com/wwuhn/Doc/blob/master/github%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.docx

-End-



Tags:Github   点击:()  评论:()
声明:本站部分内容来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
问题重现情况1:最近在家访问github网站(win10系统),dos控制台可以ping通,浏览器突然访问不了。情况2:阿里云服务器是Centos7.6,拉取github代码出现Failed to connect to github.c...【详细内容】
2020-11-11   Github  点击:(3)  评论:(0)  加入收藏
每次从github上拉东西,速度都奇慢无比,本地的时候可以设置代理,但是一些特殊场合并不是特别方便,所以就写了下面的反向代理。建议直接看这个 https://ghostcir.com/s/169.html,通...【详细内容】
2020-10-19   Github  点击:(4)  评论:(0)  加入收藏
在GitHub上接触一个新项目时,如果有一个详实有效的README,可以极大降低学习成本, 提升用户体验。之前的文章中 如何创建一个高质量高逼格的Gitlab工程项目 介绍了如何通过badge...【详细内容】
2020-10-17   Github  点击:(2)  评论:(0)  加入收藏
前段时间 GitHub 出了一个功能,可以定制自己的 GitHub 首页。...【详细内容】
2020-09-25   Github  点击:(5)  评论:(0)  加入收藏
0x01 描述平时开扫描器或者使用sqlmap,有的站点使用的waf或者防火墙规则会将请求流量过多的IP ban掉,而手动切换代理又比较慢,因而写了这个使用随机代理的小工具。http代理还是...【详细内容】
2020-09-21   Github  点击:(8)  评论:(0)  加入收藏
1. Github Container Registry9 月 1 日,GitHub 宣布 Github Container Registry 开始公测,测试期间提供免费、无限容量的 Docker 镜像仓库服务。再也不用担心,docker.io 一言...【详细内容】
2020-09-09   Github  点击:(30)  评论:(0)  加入收藏
GitHub Actions[1] 是 GitHub 的持续集成服务[2],于2018年10月推出[3]。它的功能非常强大,每一个 action 都用来执行一种操作,比如抓取代码、运行测试、登录远程服务器,发布到第...【详细内容】
2020-09-02   Github  点击:(39)  评论:(0)  加入收藏
有没有喜欢编程的同志下载GitHub上的代码下载压缩包很慢用git下载也很慢毕竟GitHub是国外的很慢也很正常但是不是就没法儿了呢其实不是至少有两种方式可以告诉下载今天就...【详细内容】
2020-08-20   Github  点击:(10)  评论:(0)  加入收藏
一、算法的引入如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?可以用枚举法,简单,但是计算量大。需要用至少三个循环来完成。import timestart...【详细内容】
2020-08-17   Github  点击:(9)  评论:(0)  加入收藏
Coil是Android上的一个全新的图片加载框架,它的全名叫做coroutine image loader,即协程图片加载库。与传统的图片加载库Glide,Picasso或Fresco等相比。该具有轻量(只有大约1500个方法)、快、易于使用、更现代的API等优势...【详细内容】
2020-08-03   Github  点击:(3)  评论:(0)  加入收藏
前言Github称为全球最大的"同性交友"平台,因为这里是程序员的天堂,在这里,很多程序员利用工作之余,无私的贡献了很多优秀的开源代码和框架。开源是一个利人利己的事,一方面,其他开...【详细内容】
2020-08-02   Github  点击:(7)  评论:(0)  加入收藏
想必大家都知道,学习路线图是学习一门新技术的入门指南,让我们对技术有一个大概的了解,并且在学习感到困惑时被指导。所谓不求最好,但求最全。今天在在就给大家带来了一个国外大...【详细内容】
2020-08-02   Github  点击:(9)  评论:(0)  加入收藏
由于某些原因,国内访问Github会异常缓慢,在clone仓库时甚至只有10k以下的速度,下载半天有时还会失败需要从头再来,甚是让人恼火。本文介绍通过修改系统hosts文件的办法,绕过国内d...【详细内容】
2020-07-31   Github  点击:(4)  评论:(0)  加入收藏
开源最前线(ID:OpenSourceTop) 猿妹整编项目地址:https://github.com/tuteng/Best-websites-a-programmer-should-visit-zh在学习CS的时候有一些你必须知道的有用的站点来获取通...【详细内容】
2020-07-26   Github  点击:(7)  评论:(0)  加入收藏
整理 | 唐小引头图 | CSDN 下载自 VCG出品 | CSDN(ID:CSDNnews)7 月 15 日,由中国开源软件推进联盟(COPU)主办,赛迪传媒、《软件和集成电路》杂志社联合承办,CSDN 独家直播的 2020...【详细内容】
2020-07-19   Github  点击:(2)  评论:(0)  加入收藏
前言Docker 社区已经创建了许多开源工具,它们能帮我们处理各种用例。作者在本文中推荐了 5 款认为最有用的 Docker 工具,分别是 Watchtower(自动更新 Docker 容器)、docker-gc(...【详细内容】
2020-07-18   Github  点击:(4)  评论:(0)  加入收藏
作者 | HelloGitHub-小鱼干来源 | HelloGitHub(ID:GitHub520)摘要:一个程序员除了技术好,还得品位高,有什么比一个高颜值的 GUI 更能体现你品味的呢?rocketredis 就是一个高颜值、...【详细内容】
2020-07-16   Github  点击:(9)  评论:(0)  加入收藏
Google作为一家超大型公司,其内部使用的各种系统在设计时必然也是按照企业级的规模以及要求来设计的,而最近他们开源的内部漏洞扫瞄系统Tsunami理所当然的也是如此。Google早...【详细内容】
2020-07-11   Github  点击:(8)  评论:(0)  加入收藏
GitHub网站,这个当今最大的开源代码宝藏。对于程序员的重要意义,相信不用过多阐述,作为软件工作者的你我,均深有体会!然而,一些优秀的开源项目,在学习和了解的过程中,由于网络的限...【详细内容】
2020-07-09   Github  点击:(6)  评论:(0)  加入收藏
前言:最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势。而Github作为开源项目的著名托管地,可谓无 人不知,越来越多的个人和公司纷...【详细内容】
2020-06-21   Github  点击:(10)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条