.NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练

写在前面

上篇文章我带着你们经过分析了一遍ASP.NET Core的源码了解了它的启动过程,而后又带着你们熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概念!若是你们把前面几张都理解了,那么你也就入了ASP.NET Core的大门了。可是咱们还须要一个版本控制工具来提升咱们的编码效率。所以这篇文章我将带着你们了解下Git这个版本控制工具以及为何选择它。
下面咱们将经过故事的形式从Git的历史谈起,并讲述Git的强大之处。而后经过实战演练教你如何在Github以及码云上托管咱们的代码并进行代码的版本控制。
这里还想说一句,这篇文章原本昨天就能发出来的,奈何出现了一点情况,因此今天才来写,为了避免浪费你们的时间我会在文章的最后再来说述缘由,这里给你们说声抱歉了。
本篇文章已经收入.NET Core实战项目之CMS 第一章 入门篇-开篇及整体规划 有兴趣的朋友能够加入.NET Core项目实战交流群637326624 进行交流。html

做者:依乐祝
本来地址:https://www.cnblogs.com/yilezhu/p/10014027.htmlgit

Git快速入门

本部分我会先经过故事的形式讲解下Git的诞生,及其强大的分布式版本控制的能力。而后再给你们介绍一下咱们在实际的项目开发过程当中常常用到的git命令,让你们可以快速入门Git。固然我不会给你介绍八百年也不会用一次的命令,感受很高级的命令,毕竟实用才是硬道理。还有不要期望经过这篇文章你就能成为Git专家,这篇文章只会让你在实际项目中可以迎刃有余的使用Gitgithub

关于Git你不得不知的故事

(没错,这部分参考自廖雪峰大神的文章,由于有必要让大伙了解这些)不少人都知道,Linus在1991年建立了开源的Linux,今后,Linux系统不断发展,已经成为最大的服务器系统软件了。数据库

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

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

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

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

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

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

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

Git迅速成为最流行的分布式版本控制系统,尤为是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。现在GitHub更是被微软收购,ASP.NET Core的的全套源码以及.NET Core的源码也都是在GitHub上开源。

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

Git的优点

看了Git的的故事是否是心潮澎湃呢?可是你又在想了Git到底有什么优点可以让那么多的大名鼎鼎的项目都是用Git进行代码管理呢?别急,这部分就为你解答。

  1. 适合分布式开发,强调个体,能够离线工做。 分布式版本控制系统根本没有“中央服务器”,每一个人的电脑上都是一个完整的版本库,这样,你工做的时候,就不须要联网了,由于版本库就在你本身的电脑上。既然每一个人电脑上都有一个完整的版本库,那多我的如何协做呢?比方说你在本身电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,大家俩之间只需把各自的修改推送给对方,就能够互相看到对方的修改了。

  2. 安全性要高不少,由于每一个人电脑里都有完整的版本库,某一我的的电脑坏掉了没关系,随便从其余人那里复制一个就能够了。而集中式版本控制系统的中央服务器要是出了问题,全部人都无法干活了。所以公共服务器压力和数据量都不会太大。

  3. 速度快、灵活。 强大的分支管理能力,不管建立、切换和删除分支,Git在1秒钟以内就能完成!不管你的版本库是1个文件仍是1万个文件,想一想svn是否是头疼啊。

  4. 暂存区概念,具体的点击这里 查看

这个优缺点Git的优点想的头疼,说太多就感受枯燥了,只有你真正使用了才能体会到!话很少说,让咱们快速入门Git吧。

Git安装

  1. 你能够点击这里 到官网进行下载,可能官网下载比较忙,因此你能够点击这里 到腾讯软件中心进行下载.

  2. Windows系统的安装很简单,软件下载好以后一步一步的安装就好了,至于Linux和MacOS你能够点这里 查看官网的安装教程.

  3. 安装完成以后,须要进行相关的配置,在命令行输入如下命令进行全局的配置:

    $ git config --global user.name "yilezhu"
    $ git config --global user.email "1015657114@qq.com"

    注:由于Git是分布式版本控制系统,因此,每台机器都必须自报家门:你的名字和Email地址(上面双引号里面的内容)。你也许会担忧,若是有人故意冒充别人怎么办?这个没必要担忧,首先咱们相信你们都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

    注意git config命令的--global参数,用了这个参数,表示你这台机器上全部的Git仓库都会使用这个配置,固然也能够对某个仓库指定不一样的用户名和Email地址。

  4. 点击这里 ,下载并安装TortoiseGit图形化工具,安装后能够经过鼠标进行Git命令的操做。以下所示:

    1543061444748

Git结合Github进行实战演练

Git本地仓库与GitHub远程仓库关联并获取最新的代码

这部分咱们就进行Git的实战吧,正好前面几篇文章已经为你们演示了几个例子,那么咱们就把前面几个例子为例,使用Git把他们托管到GitHub上面吧。

  1. 假设你已经有了GitHub帐号,没有的话本身去注册。点击这里 登陆GitHub,

  2. 自报家门,配置你是谁(若是你在上面的Git安装)里面已经按照下面进行了配置,这里就无需再配置。首先鼠标右键按照下图所示打开Git Bash 而后按照下图所示进行配置:

    1543063300748

    1543063525086

  3. 生成ssh key 在git bash上面输入ssh-keygen -t rsa -C "你的邮箱" 它会有三次等待你输入,直接回车便可。下面的图是由于我已经生成了,询问我是否覆盖,我输入y选择了是从新生成了。

    1543063686083

  4. 将生成的ssh key拷贝到剪贴板,执行 clip < ~/.ssh/id_rsa.pub (或者到上图提示的路径里去打开文件并复制):

    1543064147452

  5. 打开github并按照以下图所示打开Settings

    1543064363837

  6. 点击左边的SSH and GPG keys 而后在右边点击 New SSH key

    1543064336071

    将ssh key粘贴到右边的Key里面。Title随便命名便可。这时候GitHub会给你发送一封邮件

    1543064246038

  7. 执行 ssh -T git@github.com测试结果以下说明GitHub配置成功。

    1543064535854

  8. GitHub上建立一个新的项目,项目名称为Czar.Cms,这个仓库将做为咱们后面CMS系统的GitHub上的远程仓库
    • 首先是在右上角“+”进入建立界面
      1543065344474
    • 接着按照以下所示输入项目名称,而后点击Create repository 就建立好了。

    1543065764512

    这里咱们有选择以Readme初始化项目。因此生成后的结构以下所示:

    1543065918196

  9. 下面咱们就在本地初始化一个仓库,而后与GitHub的远程仓库关联起来吧。

  10. 咱们在咱们的工做文件夹中,打开Git Bash,而后输入以下命令git init来初始化一个本地仓库。

    1543066727823

  11. 而后输入git remote 查看下远程仓库,正常的话应该有0个,如今就让咱们添加下咱们刚才创建的GitHub上的远程仓库吧.而后再看下远程仓库列表,发现已经有一个了,名字为github

    注:要添加一个新的远程仓库,能够指定一个简单的名字,以便未来引用,运行 git remote add [shortname] [url] 。上面咱们对应的shortname即为github,这个你能够随意指定只要好记就行。感谢@宝宝董 给与的提示!

    1543067824895

    git remote add github github远程仓库的地址
  12. 而后输入git pull github master 就会从刚才咱们配置的远程仓库拉取master分支的代码。以下所示:

    1543067968316

  13. 获取以后而后看下我么的项目文件夹,以下所示:已经从GitHub上获取到了最新的代码:

    1543068120750

把上篇文章的源码上传到GitHub的Sample02分支上

  1. 在咱们的本地仓库文件夹打开git bash 而后输入git checkout -b Sample02 命令建立并切换到Sample02 这个分支,而后把咱们上篇文章的代码拷贝到这个文件夹,以下图所示

    1543068715835

    1543068674449

  2. 输入git status 查看当前仓库有哪些文件作了修改,以下图所示,红色部分表示已经发生了修改

    1543069027605

  3. 输入git add Sample02/ 把Sample02文件夹下面全部的已经发生了修改的文件都放进'暂存区' 而后输入git status 查看一下当前的状态,都变成了绿色,说明Sample02文件夹下面的修改内容都加入了暂存区

    1543069251735

  4. 接着输入git commit -m '注释内容'命令把咱们暂存区的代码提交到咱们的本地仓库

    1543069360089

  5. 而后输入git status 查看一下,发现全部的修改都已经提交成功了。

    1543069432593

  6. 输入以下命令git push github Sample02把咱们的本地代码提交到远程仓库的'Sample02分支'吧

    1543069575141

    注意,这里时提交到Github上的Sample02分支上,而咱们的GitHub上没有这个分支,因此会自动帮咱们建立这个分支。

  7. 这里第三篇的事例代码就上传到Github上了。你们能够去查看下,顺便给个Star哦,由于后面的CMS的代码我也会放到这个仓库,只不过是不一样的分支而已。

  8. 下面就让咱们切换回master分支,并结束这个部分吧。输入git checkout master

GitHub源码地址

这个时候能够上GitHub的地址了,后面全部的事例代码都会放到这个分支上,因此大伙能够先去看一下上一篇的事例代码
https://github.com/yilezhu/Czar.Cms

迟更的缘由

很是抱歉,原本这篇文章应该昨天写的,奈何昨天中午我老婆给我打电话带着哭腔的说她的爷爷奶奶生病了,问我这个周末加不加班,若是不加班陪她回家看下。我说,你先别着急,我立刻请假陪你回去。而后中午的时候就请假,而后开了四个多小时的车带着我老婆以及我女儿(大名:依乐,小名:可乐)回我老婆的老家了。而后次日,也就是今天早上就带着个人爷爷奶奶去县城里面的人民医院作检查,还好检查结果没什么大的问题。这是万幸了!最后回到家都四五点钟了。而后才开始写“昨天的文章”,这一写就写到了如今。再次给你们说声抱歉。之后我尽可能两天一更,最少也得一星期三更。再次感谢你们的支持。

总结

本文从Git的诞生开始提及,而后给你们讲了Git的优点。接着咱们经过一个GitHub的实战,手把手的在GitHub上新建了一个远程仓库并跟我本地的代码进行管理,而且把个人上篇文章的事例代码给上传到了GitHub上。但愿对你们使用Git有所帮助。下面再次罗列经常使用的Git命令

  • git init :初始化本地仓库
  • git remote :查看关联的远程仓库链接
  • git remote add github github远程仓库地址 :建立一个远程仓库链接
  • git pull github master :从github命名的远程仓库拉取master分支内容
  • git checkout -b Sample02 :建立并切换到Sample02这个分支上
  • git branch :查看当前的全部分支
  • git add Sample02/ :把Sample02文件夹下面的全部修改文件添加到暂存区
  • git commit -m "注释" :把暂存区全部修改提交到本地仓库,并给本体提交写一个注释方便查看日志
  • git log --graph :查看修改日志
  • git push github Sample02 :把当前仓库中得当前分支的内容推送到github这个远程仓库的Sample02分支上,若是分支不存在则自动建立
  • git merge --no-ff -m "注释" Sample02 :在当前分支合并Sample02这个分支的修改到当前分支,并给此次合并添加注释

好了,今天就给你们介绍到这,主要是给你们介绍平时实际项目中经常使用的命令,对于不经常使用的命令没有介绍,由于毕竟是实战,因此以实用为主。下篇文章我会给你们介绍一下Dapper的使用(玩数据库了)来为后面咱们的CMS系列课程打下基础,毕竟要照顾一些新手朋友。若是你们有什么问题的话能够加.NET Core项目实战交流群637326624跟你们交流。

相关文章
相关标签/搜索