看了廖學峯老師的教程,並加上本身的理解,我總結了屬於本身的通俗易懂版本,在此記錄下來。git
首先,瞭解git和github。github
在此以前,可能有人也和我同樣,據說過git,也據說過github,而且有本身的帳號,但二者是一回事嗎?或有啥區別,有啥聯繫?shell
(ps:不知道你們會不會和我有同樣的情況,要是腦子裏一開始有一些不是很是清晰的概念,此刻想要深刻去學習的時候就沒法專心,也能理解爲腦子就沒有充足的空間去關注當下須要理解或學習的東西上,由於那些不是很清晰的概念佔據着一些沒必要要的空間。)windows
因此,先來理清一下思路又再說。緩存
Git是一款免費、開源的分佈式版本控制系統。bash
Github是用Git作版本控制的代碼託管平臺。也就表示這樣的代碼託管平臺能夠有不少個,git和github不是一一對應關係。好比,據說過的還有「碼雲」,等等。服務器
Git是分佈式版本控制系統,就是將同一個Git倉庫,分佈到不一樣的電腦上。這樣工做時就必須找一臺電腦充當服務器倉庫的角色,天天24小時開機,其餘每一個人都從這個服務器倉庫中拉取別人的提交,而且各自把各自的提交推送到這個服務器倉庫裏。但這是很不方便的,若是有個遠程的免費的倉庫可使用纔是最好的。網絡
GitHub就是提供Git倉庫託管服務的,只要註冊一個GitHub帳號,就能夠免費得到Git遠程倉庫。也就是有了這個遠程倉庫以後,一塊兒合做的小夥伴拉取或是提交都是面對這個遠程倉庫就能夠了。分佈式
至於怎樣完成全部步驟,接下來會通俗易懂介紹的。工具
什麼是git?
Git是目前世界上最早進的分佈式版本控制系統(沒有之一)。
什麼契機下,產生的版本控制系統:
若是幾個同事一塊兒合做編輯一個文件,若是全靠人工的話,就須要保留每一個時期,每一個人的版本,以便以後查看,修改。還得整理出包含每一個改動的最終版,這個最終版只要有人改動,就得找到那個改動的地方,而後更新。總之,整個過程是很是耗費時間和人力的。
由此須要,產生了版本管理系統,它能夠自動幫咱們記錄每次文件的改動,還可讓同事協做編輯,也不用本身管理一堆相似的文件,也不須要把文件傳來傳去。
知道了版本控制系統,那什麼是分佈式呢?
與分佈式對應的是集中式。
集中式就是將整個文件統一放在特定服務器上,工做的時候先要從這個服務器上獲取到最新版本,而後再進行本身的編輯修改,完了再提交到此服務器上。因此若是沒有網絡,就無法工做了。
分佈式是每一個人電腦上都有完整版本,沒有網絡也能夠工做,能夠同事之間交換修改部分,也能夠統一設立中央服務器,而後獲得每一個人修改的記錄。
先簡單這樣有個概念,以後再本身實驗。
怎樣使用git?
一、要先安裝git,再這裏有詳細的各個操做系統下的安裝步驟。
二、裝好以後,咱們要理解到,git管理的單位或是範圍稱爲「倉庫」,其實也就是某個你想管理的文件夾(目錄)。
(ps:你能夠創建多個倉庫,有些是本地本身用git管理,有些是託管在github或碼雲或別的遠程平臺上。)
下面就舉個我在本地用git管理文件的例子:(別急,下一篇,會再舉遠程的例子)
【注:個人是win10系統。並且我已經裝好git了。】
先說個題外話:我對命令行的理解(隨時保留改正空間~~)。
我是這樣理解的(若是不對的話,歡迎提出你的想法,向你學習):命令行是與圖形界面操做一個意思,就好比圖形界面上鼠標右鍵選擇新建文件,那這個操做在命令行就能夠用某個命令去完成。
命令行在不一樣操做系統上會有不一樣的命令行工具,例如windows上是cmd,Linux下是shell。
而若是下了一個軟件,裏面的操做是用命令行操做的話,它也會提供命令行工具,就好比下了git,它提供了git bash,在裏面寫命令來操做。(這個軟件是基於哪一個操做系統開發的,則它提供的命令行工具,也會延續該操做系統的命令,因此git bash也就看成Linux環境下的命令行工具。)
(1)在合適的位置建立空的目錄,做爲版本庫。
這個目錄(版本庫)裏面的全部文件均可以被Git管理起來,每一個文件的修改、刪除,Git都能跟蹤,以便任什麼時候刻均可以追蹤歷史,或者在未來某個時刻能夠「還原」。
使用e:就不能進入e盤了,由於e:是windows下的命令。
我在e盤下新建了gitproject,而後又在其下新建了localfile文件,準備將localfile做爲本次實驗的git倉庫。
(2)在當前目錄下,經過【git init】
命令把這個目錄變成Git能夠管理的倉庫:
執行git init命令以後,從「個人電腦」打開localfile,則會看到localfile目錄下有個.git目錄,這個目錄就是Git用來跟蹤管理版本庫的。
(3)而後在localfile下新建文件test.txt,並寫些內容進去。
例如在文件中寫以下文字:
(4)用命令【git add】
告訴Git,把文件添加到倉庫:
沒有任何反應,說明執行成功。
(5)用命令【git commit】
告訴Git,把文件提交到倉庫:
注:git commit -m以後雙引號中是本次修改的描述,能夠寫你以爲能夠描述本次行爲的任何有意義的內容,以便以後查閱。
你能夠屢次執行git add命令,以後再使用git commit一次進行提交。
當你用git add
命令後,至關於將一次修改放入暫存區,準備提交,因此能夠將屢次修改放入緩存區以後,一次提交。
(6)當咱們再次修改了test.txt文件以後,再執行【git status】
命令,能夠獲得以下結果:
它會告訴你倉庫當前的情況:test.txt被修改了,可是尚未放入緩存,也還沒提交。
(7)用【git diff】
這個命令,能夠查看咱們具體作了什麼修改:
我當下的test.txt內容爲:
(8)接着執行git add,再執行git status:
它會告訴咱們當前倉庫的情況是:將要被提交的文件是test.txt。
(9)而後執行git commit -m "第二次修改",再執行git status:
它告訴咱們當前倉庫的情況是:沒有須要提交的內容。
(10)使用【git log】命令查看全部歷史記錄:
我用藍色圈出來的部分就是咱們每次提交時候寫在 -m 以後的描述,能夠簡單清晰瞭解每次大概改動的地方。
好的,以上就是常常會使用到的命令,總結一下:(若是想要了解其餘命令,能夠仔細閱讀廖學峯老師的教程)
git init 將當前目錄變成git倉庫
git add 將修改文件放入緩存區
git commit -m "描述文字" 將緩存區中文件提交
git status 查看當前倉庫的狀況
git diff 查看具體修改內容
git log 查看歷史記錄
下一篇會總結托管在github上的例子~~