git、github以及nodeJS的使用

基于开放的git、nodeJS以及github社区开发,是一个全新高效的世界。本文编辑中尚未完成....

git新生-开源软件之父的匠心之作

git诞生,离不开著名的开源软件之父linus(全名:Linus Benedict Torvalds,有一些文档也称其为Torvalds,实则指同一人),这也是他一生的第二个伟大作品(他的第一个伟大作品,就是linux内核的发明人)。

现代软件的研发,需要对软件版本进行管理,从而可以合理分工、回溯、备份、还原等操作,逾是大型软件研发逾显得重要,Linux开源社区同样如此。

2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了。

目前使用Git作为版本控制的开源软件:Linux kernel,Android, jQuery, Ruby on Rails,Debian…

Eclipse上使用Git的项目数量也已经超过了使用排名第二的SVN仓库数。

Git优点

- 分布式,离线操作

- 每日工作备份

- 异地协同工作

- 现场版本控制

- 快

Git缺点

- 复杂的信息模型

- 抓狂的命令语法

- 让人费解的文档

- 新概念泛滥

- 保密性差

- 学习周期长

通过git命令克降一个库的经典语法:

git clone https://github.com/zoomla/cms2.git

github平台

2008年,美国人Tom Preston-Werner、ChrisWanstrath推出Github网站,使用Git作为版本控制软件创建了 http://Github.com,这是一个专门托管代码并且可以实现版本控制的网站。Tom之所以把网站叫做Github,是因为其核心部分版本控制是用Git来处理的。但是为什么有人回复调侃Github是全球最大男性交友网站呢?那是因为Github的注册用户大都是男生,而且彼此之间可以相互关注(类似于微博)。

2016年6月,微软以75亿美元的价格收购了它,此前该公司作为一家独立公司已经经营了近10年,依托微软技术可以更好的为用户提供服务,也依然坚守开源免费的策略

由此可见:github是网上仓库,你写的代码的各个版本都可以存在这个网站平台上。

结论:一般人们称github事实上是指github.com这个网站平台,而git则是最底层的命令和技术,相当于北方人面粉和面之间的关系--面粉是基础,而面是面粉最后的形态之一。

git和github的区别,恐怕很多人都说不清楚。

用一句话形容这二者的关系:git是弓,你的代码是箭,github是靶子。

git是软件,它可在本地建立仓库,你写的代码的各个版本都可以储存在互联网上,而且不需要另外付费购买空间,可追溯、镜像、分享。

git创建并上传代码到远程仓库中

首先安装git支持,只要访问 https://git-scm.com/下载对应的版本,一路回车就可以完成安装,安装完成在命令行中运行git -v就能看到友好版本提示,即告安装成功,如下图所示:

git安装成功界面

第一步:接下来我们需要先创建一个本地的版本库(其实也就是一个文件夹)。

你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建。

现在我通过命令行在桌面新建一个TEST文件夹(你也可以在其他任何地方创建这个文件夹),并且进入这个文件夹

创建git文件夹

第二步:接下来通过命令git init把这个文件夹变成Git可管理的仓库:

把这个文件夹变成Git可管理的仓库

这时你会发现TEST里面多了个.git文件夹,它是Git用来跟踪和管理版本库的。如果你看不到,是因为它默认是隐藏文件,那你就需要设置资源管理器参数,允许隐藏文件可见。

这时你会发现TEST里面多了个.git文件夹

第三步:这时候你就可以把你的项目粘贴到这个本地Git仓库里面(粘贴后你可以通过git status来查看你当前的状态),然后通过git add把项目添加到仓库(或git add .把该目录下的所有文件添加到仓库,注意点是用空格隔开的)。在这个过程中你其实可以一直使用git status来查看你当前的状态。

这时候你就可以把你的项目粘贴到这个本地Git仓库里面

这时候你就可以把你的项目粘贴到这个本地Git仓库里面

这里提示你虽然把项目粘贴过来了,但还没有add到Git仓库上,然后我们通过git add .把刚才复制过来的项目全部添加到仓库上。

然后我们通过git add .把刚才复制过来的项目全部添加到仓库上

然后我们通过git add .把刚才复制过来的项目全部添加到仓库上

第四步:用git commit把项目提交到仓库。

把项目提交到仓库

-m后面引号里面是本次提交的注释内容,这个可以不写,但最好写上,不然会报错,详情自行Google。 好了,我们本地Git仓库这边的工作做完了,下面就到了连接远程仓库(也就是连接Github)

由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下.

第五步:创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建:

$ ssh-keygen -t rsa -C "youremail@example.com"

然后一路回车。这时你就会在用户下的.ssh目录里找到id_rsaid_rsa.pub这两个文件

第六步:登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。具体步骤也可看下面:

github的ssh设置1

github的ssh设置2

github的ssh设置3

github的ssh设置4

github的ssh设置5

第七步:在Github上创建一个Git仓库。

你可以直接点New repository来创建,比如我创建了一个TEST2的仓库(因为我里面已经有了一个test的仓库,所以不能再创建TEST仓库)。

在Github上创建一个Git仓库

第八步:在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,根据创建好的Git仓库页面的提示,可以在本地TEST仓库的命令行输入:

$ git remote add origin https://github.com/guyibang/TEST2.git

在Github上创建好Git仓库之后我们就可以和本地仓库进行关联

注意origin后面加的是你Github上创建好的仓库的地址。

注意origin后面加的是你Github上创建好的仓库的地址

第九步:关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了,通过:

$ git push -u origin master

由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:

$ git push origin master

上传项目的过程可能需要等一段时间,完成之后是这样的:

上传项目的过程可能需要等一段时间

这时候你再重新刷新你的Github页面进入刚才新建的那个仓库里面就会发现项目已经成功上传了:

这时候你再重新刷新你的Github页面进入刚才新建的那个仓库里面就会发现项目已经成功上传了

至此就完成了将本地项目上传到Github的整个过程。

总结:对于一个关联好的Git项目,你需要执行以下两步完成提交:

git add .
git commit -m “提交信息的描述文字”

另外,这里有个坑需要注意一下,就是在上面第七步创建远程仓库的时候,如果你勾选了Initialize this repository with a README(就是创建仓库的时候自动给你创建一个README文件),那么到了第九步你将本地仓库内容推送到远程仓库的时候就会报一个failed to push some refs to  https://github.com/guyibang/TEST2.git的错。

这里有个坑需要注意一下

这是由于你新创建的那个仓库里面的README文件不在本地仓库目录中,这时我们可以通过以下命令先将内容合并以下:

$ git pull --rebase origin master

成功

这时你再push就能成功了。

总结:其实只需要进行下面几步就能把本地项目上传到Github

1、在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库;

2、把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库;

3、再通过git commit -m "注释内容"把项目提交到仓库;

4、在Github上设置好SSH密钥后,新建一个远程仓库,通过git remote add origin https://github.com/guyibang/TEST2.git将本地仓库和远程仓库进行关联;

5、最后通过git push -u origin master把本地仓库的项目推送到远程仓库(也就是Github)上;(若新建远程仓库的时候自动创建了README文件会报错,解决办法看上面)。

这里只是总结了Git上传项目的一些基本操作,要想更好地使用Git还需更进一步的学习。

报错处理

1、git添加远程库的时候有可能出现如下的错误:

'fatal:remote origin already exists'

git报错

#删除本地库关联重新建立git关系:
git remote rm origin

2、github上git clone一个项目,在里面创建一个目录,然后git push的时候,出现报错”Everything up-to-date”

原因:
1)没有git add .
2)没有git commit -m “提交信息”
如果上面两个步骤都成功执行,还出现这个错误是因为创建的目录下是空的,目录下必须有文件才能git push上传成功。