看了廖學峰老師的教程,並加上自己的理解,我總結了屬於自己的通俗易懂版本,在此記錄下來。
首先,了解git和github。
在此之前,可能有人也和我一樣,聽說過git,也聽說過github,並且有自己的賬號,但兩者是一回事嗎?或有啥區別,有啥聯系?
(ps:不知道大家會不會和我有一樣的狀況,要是腦子里一開始有一些不是非常清晰的概念,此刻想要深入去學習的時候就無法專心,也能理解為腦子就沒有充足的空間去關注當下需要理解或學習的東西上,因為那些不是很清晰的概念占據着一些不必要的空間。)
所以,先來理清一下思路又再說。
Git是一款免費、開源的分布式版本控制系統。
Github是用Git做版本控制的代碼托管平台。也就表示這樣的代碼托管平台可以有很多個,git和github不是一一對應關系。比如,聽說過的還有“碼雲”,等等。
Git是分布式版本控制系統,就是將同一個Git倉庫,分布到不同的電腦上。這樣工作時就必須找一台電腦充當服務器倉庫的角色,每天24小時開機,其他每個人都從這個服務器倉庫中拉取別人的提交,並且各自把各自的提交推送到這個服務器倉庫里。但這是很不方便的,如果有個遠程的免費的倉庫可以使用才是最好的。
GitHub就是提供Git倉庫托管服務的,只要注冊一個GitHub賬號,就可以免費獲得Git遠程倉庫。也就是有了這個遠程倉庫之后,一起合作的小伙伴拉取或是提交都是面對這個遠程倉庫就可以了。
至於怎樣完成所有步驟,接下來會通俗易懂介紹的。
什么是git?
Git是目前世界上最先進的分布式版本控制系統(沒有之一)。
什么契機下,產生的版本控制系統:
如果幾個同事一起合作編輯一個文件,如果全靠人工的話,就需要保留每個時期,每個人的版本,以便之后查看,修改。還得整理出包含每個改動的最終版,這個最終版只要有人改動,就得找到那個改動的地方,然后更新。總之,整個過程是非常耗費時間和人力的。
由此需要,產生了版本管理系統,它可以自動幫我們記錄每次文件的改動,還可以讓同事協作編輯,也不用自己管理一堆類似的文件,也不需要把文件傳來傳去。
知道了版本控制系統,那什么是分布式呢?
與分布式對應的是集中式。
集中式就是將整個文件統一放在特定服務器上,工作的時候先要從這個服務器上獲取到最新版本,然后再進行自己的編輯修改,完了再提交到此服務器上。所以如果沒有網絡,就沒法工作了。
分布式是每個人電腦上都有完整版本,沒有網絡也可以工作,可以同事之間交換修改部分,也可以統一設立中央服務器,然后得到每個人修改的記錄。
先簡單這樣有個概念,之后再自己實驗。
怎樣使用git?
1、要先安裝git,再這里有詳細的各個操作系統下的安裝步驟。
2、裝好之后,我們要理解到,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上的例子~~