1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
      <output id="hzk7v"></output>
    2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
    3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

      .NET Corek中Git的常用命令及实战演练

       更新时间£º2019年04月04日 09:46:51   作者£º依乐祝   我要评论

      这篇文章将通过故事的形式从Git的历史谈起£¬并讲述Git的强大之处¡£然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制

      写在前面

      上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程£¬然后又带着大家熟悉了一遍配置文件的加载方式£¬最后引出了依赖注入以及控制反转的概念£¡如果大家把前面几张都理解了£¬那么你也就入了ASP.NET Core的大门了¡£但是我们还需要一个版本控制工具来提高我们的编码效率¡£因此这篇文章我将带着大家了解下Git这个版本控制工具以及为什么选择它¡£

      下面我们将通过故事的形式从Git的历史谈起£¬并讲述Git的强大之处¡£然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制¡£

      Git快速入门

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

      关于Git你不得不知的故事

      £¨没错£¬这部分参考自廖雪峰大神的文章£¬因为有必要让大伙了解这些£©很多人都知道£¬Linus在1991年创建了开源的Linux£¬从此£¬Linux系统不断发展£¬已经成为最大的服务器系统软件了¡£

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

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

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

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

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

      Linus可以向BitMover公司?#26639;?#27465;£¬保证以后严格管教弟兄们£¬?#29275;?#36825;是不可能的¡£实?#26159;?#20917;是这样的£º

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

      Git迅速成为最流行的分布式版本控制系?#24120;?#23588;其是2008年£¬GitHub网站上线了£¬它为开源项目免费提供Git存储£¬无数开源项目开始迁移至GitHub£¬包括jQuery£¬PHP£¬Ruby等等¡£如今GitHub更是被微软?#23637;º£¬ASP.NET Core的的全套源码以及.NET Core的源码也都是在GitHub上开源¡£

      历史就是这么偶然£¬如果不是当年BitMover公?#23601;?#32961;Linux社区£¬可能现在我们就没有免费而超级好用的Git了¡£

      Git的优势

      看了Git的的故事是不是心潮澎湃呢£¿但是你又在想了Git到?#23376;?#20160;?#20174;?#21183;能够让那么多的大名鼎鼎的项目都是用Git进行代码管理呢£¿别?#20445;?#36825;部分就为你解答¡£

      1. 适合分布式开发£¬强调个体,可以离线工作¡£ 分布式版本控制系统根本没有¡°中央服务器?#20445;?#27599;个人的电脑上都是一个完整的版本库£¬这样£¬你工作的时候£¬就不需要联网了£¬因为版本库就在你自己的电脑上¡£既然每个人电脑上?#21152;?#19968;个完整的版本库£¬那多个人如何协作呢£¿比方?#30340;?#22312;自己电脑上改了文件A£¬你的同事也在他的电脑上改了文件A£¬这时£¬你们俩之间只需把各自的修改推送给对方£¬就可以互相看到对方的修改了¡£
      2. 安全性要高很多£¬因为每个人电脑里?#21152;?#23436;整的版本库£¬某一个人的电脑坏掉了不要紧£¬随便从其他人那里复制一个就可以了¡£而集中式版本控制系统的中央服务器要是出了问题£¬所有人都没法干活了¡£因此公共服务器压力和数据量都不会太大¡£
      3. 速度快¡¢灵活¡£ 强大的分支管理能力£¬无论创建¡¢切换和删除分支£¬Git在1秒钟之内就能完成£¡无论你的版本库是1个文件?#25925;?万个文件£¬想想svn是不是头疼啊¡£
      4. 暂存区概念¡£

      这个优缺点Git的优势想的头疼£¬说太多就感觉枯燥了£¬只有你真正使用了才能体会到£¡?#23433;?#22810;说£¬让我?#24378;?#36895;入门Git吧¡£

      Git安装

      你可以点击这里 到官网进行下载,可能官网下载比较忙£¬所以你可以点击这里 到脚本之家进行下载.

      Windows系统的安装很简单£¬软件下载好之后一步一步的安装?#25176;?#20102;£¬至于Linux和MacOS你可以点这里 查看官网的安装教程.

      安装完成之后£¬需要进行相关的配置£¬在命令行输入以下命令进行全局的配置£º

      $ git config --global user.name "yilezhu"
      $ git config --global user.email [email protected]

      注£º因为Git是分布式版本控制系?#24120;?#25152;以£¬每台机器都必须自报家门£º你的名字和Email地址£¨上面双引号里面的内容£©¡£你也许会担心£¬如果有人故意冒充别人怎么办£¿这个不必担心£¬首先我们相信大家都?#24039;?#33391;无知的群众£¬其次£¬真的有冒充的也是有办法可查的¡£

      注意git config命令的--global参数£¬用了这个参数£¬表示你这台机器上所有的Git仓库都会使用这个配置£¬当然也可以对某个仓库指定不同的用户名和Email地址¡£

      点击这里 £¬下载并安装TortoiseGit图形化工具,安装后可以通过鼠标进行Git命令的操作¡£如下所示£º

      Git结合Github进行实战演练

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

      这部分我们就进行Git的实战吧£¬正?#20204;?#38754;几篇文章已经为大家演示了几个例子£¬那么我们就把前面几个例子为例£¬使用Git把他们托管到GitHub上面吧¡£

      1.假设你已经有了GitHub账号£¬没有的话自己去注册¡£点击这里 登录GitHub,

      2.自报家门£¬配置你是谁£¨如果你在上面的Git安装£©里面已经按照下面进行了配置£¬这里就无需再配置¡£首先鼠标右键按照下图所示打开Git Bash 然后按照下图所示进行配置£º

      3.生成ssh key 在git bash上面输入ssh-keygen -t rsa -C "你的邮箱" 它会有三次等待你输入£¬直接回?#23548;?#21487;¡£下面的图是因为我已经生成了£¬询问我是否覆盖£¬我输入y选择了是重新生成了¡£

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

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

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

      将ssh key?#31243;?#21040;右边的Key里面¡£Title随便命名即可¡£这时候GitHub会给你发送一封邮件

      7.执行 ssh -T [email protected]测试结果如下?#24471;÷GitHub配置成功¡£

      8.GitHub上创建一个新的项目,项目名称为Czar.Cms£¬这个仓库将作为我们后面CMS系统的GitHub上的远程仓库

      •首先是在右上角¡°+¡±进入创建界面


      •接着按照如下所示输入项目名称£¬然后点击Create repository 就创建好了¡£

      这里我们有选择以Readme初始化项目¡£所以生成后的结构如下所示£º

      9.下面我们就在本地初始化一个仓库£¬然后与GitHub的远程仓库关联起来吧¡£

      10.我们在我们的工作文件夹中£¬打开Git Bash£¬然后输入如下命令git init来初始化一个本地仓库¡£

      11.然后输入git remote 查看下远程仓库£¬正常的话应该有0个£¬现在就让我们添加下我们刚才建立的GitHub上的远程仓库吧.然后再看下远程仓库列表£¬发现已经有一个了£¬名字为github

      注£º要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url] ¡£上面我们对应的shortname即为github,这个你可以随意指定只要好记?#25176;小£¸行»@宝宝董 给与的提示£¡

      git remote add github github远程仓库的地址

      12.然后输入git pull github master 就会从刚才我们配置的远程仓库拉取master分支的代码¡£如下所示£º

      13.获取之后然后看下我么的项目文件夹£¬如下所示£º已经从GitHub上获取到了最新的代码£º

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

      1.在我们的本地仓库文件?#20889;?#24320;git bash 然后输入git checkout -b Sample02 命令创建并切换到Sample02 这个分支£¬然后把我?#24039;?#31687;文章的代码拷贝到这个文件夹£¬如下图所示

      2.输入git status 查看当?#23433;?#24211;?#24515;?#20123;文件做了修改£¬如下图所示£¬红色部分表示已经发生了修改

      3.输入git add Sample02/ 把Sample02文件夹下面所有的已经发生了修改的文件都放进'暂存区' 然后输入git status 查看一下当前的状态£¬都变成了绿色£¬?#24471;÷Sample02文件夹下面的修改内容?#25216;?#20837;了暂存区

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

      5.然后输入git status 查看一下£¬发现所有的修改?#23478;?#32463;提交成功了¡£

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

      注意£¬这里时提交到Github上的Sample02分支上£¬而我们的GitHub上没有这个分支£¬所以会自动帮我们创建这个分支¡£

      7.这里第三篇的事例代码就上传到Github上了¡£大家可以去查看下£¬?#28526;?#32473;个Star哦£¬因为后面的CMS的代码我也会放到这个仓库£¬只不过是不同的分支而?#36873;?/p>

      下面就让我们切换回master分支£¬并结束这个部分吧¡£输入git checkout master

      GitHub源码地址

      这个时候可以上GitHub的地址了£¬后面所有的事例代码都会放到这个分支上¡£

      总结

      本文从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文件夹下面的所?#34892;?#25913;文件添加到暂存区
      • git commit -m "注释" £º?#35328;?#23384;区所?#34892;?#25913;提交到本地仓库£¬并给本体提交写一个注释方便查看日志
      • git log --graph £º查看修改日志
      • git push github Sample02 £º把当?#23433;?#24211;中得当前分支的内容推送到github这个远程仓库的Sample02分支上£¬如果分支不存在则自动创建
      • git merge --no-ff -m "注释" Sample02 :在当前分支合并Sample02这个分支的修改到当前分支£¬并给这次合并添加注释

      好了£¬今天就给大家介绍到这£¬主要是给大家介绍平时实际项目中常用的命令£¬对于不常用的命令没有介绍£¬因为毕?#25925;?#23454;战£¬所以以实用为主¡£下篇文章我会给大家介绍一下Dapper的使用£¨玩数据库了£©来为后面我们的CMS系列课程打下基础£¬毕竟要?#23637;?#19968;些新手朋?#36873;?/p>

      相关文章

      最新评论

      3dÊÔ»úºÅÖвÊÍø

        1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
          <output id="hzk7v"></output>
        2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
        3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

            1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
              <output id="hzk7v"></output>
            2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
            3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>