上篇文章我帶着你們經過分析了一遍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專家,這篇文章只會讓你在實際項目中可以迎刃有餘的使用Gitgithub
(沒錯,這部分參考自廖雪峯大神的文章,由於有必要讓大夥瞭解這些)不少人都知道,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進行代碼管理呢?別急,這部分就爲你解答。
適合分佈式開發,強調個體,能夠離線工做。 分佈式版本控制系統根本沒有「中央服務器」,每一個人的電腦上都是一個完整的版本庫,這樣,你工做的時候,就不須要聯網了,由於版本庫就在你本身的電腦上。既然每一個人電腦上都有一個完整的版本庫,那多我的如何協做呢?比方說你在本身電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,大家倆之間只需把各自的修改推送給對方,就能夠互相看到對方的修改了。
安全性要高不少,由於每一個人電腦裏都有完整的版本庫,某一我的的電腦壞掉了沒關係,隨便從其餘人那裏複製一個就能夠了。而集中式版本控制系統的中央服務器要是出了問題,全部人都無法幹活了。所以公共服務器壓力和數據量都不會太大。
速度快、靈活。 強大的分支管理能力,不管建立、切換和刪除分支,Git在1秒鐘以內就能完成!不管你的版本庫是1個文件仍是1萬個文件,想一想svn是否是頭疼啊。
暫存區概念,具體的點擊這裏 查看
這個優缺點Git的優點想的頭疼,說太多就感受枯燥了,只有你真正使用了才能體會到!話很少說,讓咱們快速入門Git吧。
Windows系統的安裝很簡單,軟件下載好以後一步一步的安裝就好了,至於Linux和MacOS你能夠點這裏 查看官網的安裝教程.
安裝完成以後,須要進行相關的配置,在命令行輸入如下命令進行全局的配置:
$ git config --global user.name "yilezhu" $ git config --global user.email "1015657114@qq.com"
注:由於Git是分佈式版本控制系統,因此,每臺機器都必須自報家門:你的名字和Email地址(上面雙引號裏面的內容)。你也許會擔憂,若是有人故意冒充別人怎麼辦?這個沒必要擔憂,首先咱們相信你們都是善良無知的羣衆,其次,真的有冒充的也是有辦法可查的。
注意
git config
命令的--global
參數,用了這個參數,表示你這臺機器上全部的Git倉庫都會使用這個配置,固然也能夠對某個倉庫指定不一樣的用戶名和Email地址。
點擊這裏 ,下載並安裝TortoiseGit圖形化工具,安裝後能夠經過鼠標進行Git命令的操做。以下所示:
這部分咱們就進行Git的實戰吧,正好前面幾篇文章已經爲你們演示了幾個例子,那麼咱們就把前面幾個例子爲例,使用Git把他們託管到GitHub上面吧。
假設你已經有了GitHub帳號,沒有的話本身去註冊。點擊這裏 登陸GitHub,
自報家門,配置你是誰(若是你在上面的Git安裝)裏面已經按照下面進行了配置,這裏就無需再配置。首先鼠標右鍵按照下圖所示打開Git Bash 而後按照下圖所示進行配置:
生成ssh key 在git bash上面輸入ssh-keygen -t rsa -C "你的郵箱"
它會有三次等待你輸入,直接回車便可。下面的圖是由於我已經生成了,詢問我是否覆蓋,我輸入y選擇了是從新生成了。
將生成的ssh key拷貝到剪貼板,執行 clip < ~/.ssh/id_rsa.pub
(或者到上圖提示的路徑裏去打開文件並複製):
打開github並按照以下圖所示打開Settings
點擊左邊的SSH and GPG keys
而後在右邊點擊 New SSH key
將ssh key粘貼到右邊的Key裏面。Title隨便命名便可。這時候GitHub會給你發送一封郵件
執行 ssh -T git@github.com
測試結果以下說明GitHub配置成功。
Czar.Cms
,這個倉庫將做爲咱們後面CMS系統的GitHub上的遠程倉庫
Create repository
就建立好了。這裏咱們有選擇以Readme初始化項目。因此生成後的結構以下所示:
下面咱們就在本地初始化一個倉庫,而後與GitHub的遠程倉庫關聯起來吧。
咱們在咱們的工做文件夾中,打開Git Bash,而後輸入以下命令git init
來初始化一個本地倉庫。
而後輸入git remote
查看下遠程倉庫,正常的話應該有0個,如今就讓咱們添加下咱們剛纔創建的GitHub上的遠程倉庫吧.而後再看下遠程倉庫列表,發現已經有一個了,名字爲github
注:要添加一個新的遠程倉庫,能夠指定一個簡單的名字,以便未來引用,運行 git remote add [shortname] [url] 。上面咱們對應的shortname即爲github,這個你能夠隨意指定只要好記就行。感謝@寶寶董 給與的提示!
git remote add github github遠程倉庫的地址
而後輸入git pull github master
就會從剛纔咱們配置的遠程倉庫拉取master分支的代碼。以下所示:
獲取以後而後看下我麼的項目文件夾,以下所示:已經從GitHub上獲取到了最新的代碼:
在咱們的本地倉庫文件夾打開git bash 而後輸入git checkout -b Sample02
命令建立並切換到Sample02
這個分支,而後把咱們上篇文章的代碼拷貝到這個文件夾,以下圖所示
輸入git status
查看當前倉庫有哪些文件作了修改,以下圖所示,紅色部分表示已經發生了修改
輸入git add Sample02/
把Sample02文件夾下面全部的已經發生了修改的文件都放進'暫存區' 而後輸入git status
查看一下當前的狀態,都變成了綠色,說明Sample02文件夾下面的修改內容都加入了暫存區
接着輸入git commit -m '註釋內容'
命令把咱們暫存區的代碼提交到咱們的本地倉庫
而後輸入git status
查看一下,發現全部的修改都已經提交成功了。
輸入以下命令git push github Sample02
把咱們的本地代碼提交到遠程倉庫的'Sample02分支'吧
注意,這裏時提交到Github上的Sample02分支上,而咱們的GitHub上沒有這個分支,因此會自動幫咱們建立這個分支。
這裏第三篇的事例代碼就上傳到Github上了。你們能夠去查看下,順便給個Star哦,由於後面的CMS的代碼我也會放到這個倉庫,只不過是不一樣的分支而已。
下面就讓咱們切換回master分支,並結束這個部分吧。輸入git checkout master
這個時候能夠上GitHub的地址了,後面全部的事例代碼都會放到這個分支上,因此大夥能夠先去看一下上一篇的事例代碼
https://github.com/yilezhu/Czar.Cms
很是抱歉,原本這篇文章應該昨天寫的,奈何昨天中午我老婆給我打電話帶着哭腔的說她的爺爺奶奶生病了,問我這個週末加不加班,若是不加班陪她回家看下。我說,你先彆着急,我立刻請假陪你回去。而後中午的時候就請假,而後開了四個多小時的車帶着我老婆以及我女兒(大名:依樂,小名:可樂)回我老婆的老家了。而後次日,也就是今天早上就帶着個人爺爺奶奶去縣城裏面的人民醫院作檢查,還好檢查結果沒什麼大的問題。這是萬幸了!最後回到家都四五點鐘了。而後纔開始寫「昨天的文章」,這一寫就寫到了如今。再次給你們說聲抱歉。之後我儘可能兩天一更,最少也得一星期三更。再次感謝你們的支持。
本文從Git的誕生開始提及,而後給你們講了Git的優點。接着咱們經過一個GitHub的實戰,手把手的在GitHub上新建了一個遠程倉庫並跟我本地的代碼進行管理,而且把個人上篇文章的事例代碼給上傳到了GitHub上。但願對你們使用Git有所幫助。下面再次羅列經常使用的Git命令
Sample02
這個分支的修改到當前分支,並給此次合併添加註釋好了,今天就給你們介紹到這,主要是給你們介紹平時實際項目中經常使用的命令,對於不經常使用的命令沒有介紹,由於畢竟是實戰,因此以實用爲主。下篇文章我會給你們介紹一下Dapper的使用(玩數據庫了)來爲後面咱們的CMS系列課程打下基礎,畢竟要照顧一些新手朋友。若是你們有什麼問題的話能夠加.NET Core項目實戰交流羣637326624跟你們交流。