版本控制之Git(初體驗):一款免費、開源分散式版本控制系統

什麼是git?

Git是一款免費、開源的分散式版本控制系統,用于敏捷高效地處理任何或小或大的項目。

說白了就是用來管理我們的代碼。

特點呢?

分散式版本控制系統

分支和合併比較廉價

靈活的工作流

速度快

安裝?

mac ,linux 和unix系統下是自帶git的,但是window下需要安裝。

檢查是否安裝成功?

檢查是否安裝成功git,打開終端,輸入git --version,可以查看到,如果電腦安裝成功了,是可以查看到安裝的版本號。

把你介紹給git?

需要讓git知道是誰在開發。

配置你的名字:git config --global user.name "fanfan"(例如fanfan)

配置的郵箱:git config --global user.email "[email protected]"(例如[email protected]

Advertisements

你只需要配置一次,以後git就會記住你。

git原理及基本命令

原理圖

1.jpg

在git中,我們的文件分為四種狀態

不需要管理的文件、沒有改變的文件、文件改變、和暫存狀態、通過文件的不同狀態,決定了他們所在的區域,所以將git分成了三個區域

工作區(working directory)

暫存區(stage index)

歷史記錄區(history)

三者之間關係

工作區是我們能看見的區域,我們在工作區編輯代碼,進行增刪改查;編輯完成後,用git add將工作區的文件添加到暫存區;然後利用git commit提交文件到我們自己的分支結構。

初識git

首先我們在桌面上先新建一個文件夾

在終端里輸入mkdir Start表示在桌面新建了一個名為Start的文件夾

Advertisements

0.jpg

回車之後,桌面上即新建了一個文件夾

2.jpg

操作之後

終端里輸入cd Start表示進入這個文件夾

3.jpg

基本命令

git init 初始化、代表這個文件夾已經被git管理

4.jpg

輸入ls 查看Start中的內容 此時什麼都看不到,因為我們還沒有創建其他內容。

輸入ls -a 代表查看Start中的隱藏的文件和隱藏的文件夾。發現此時,出現了一個.git文件夾。

5.jpg

這個時候我們不妨看一下,.git文件下都有什麼東西,

6.jpg

其實這麼多文件都是git的元數據,git的所有東西都在.git這個文件夾中,我們自己的東西都在Start這個文件夾中,git並不會幹擾我們。

輸入vi start.txt(vim start.txt也可以) 表示在Start文件夾中創建一個名為start的txt文件。

7.jpg

會彈出一個文件筐,我們在裡面輸入 one for text 然後按下ESC鍵,在按下冒號(shift+;)、輸入wq保存。

上述表示我們在start.txt文件中寫入一行文字one for text並且保存 退出

8.jpg

為了檢驗我們的操作,可以打開Start文件夾,查看裡面的start.txt文件,效果如下

9.jpg

同理,我們再輸入vi goon.html(vim goon.html也可以),新建一個名為goon的html文件,打開,輸入div,按下ESC,再按下冒號(shift+;)、輸入wq保存。

再次檢驗操作,如下表示操作正確

10.jpg

現在我們的Start文件夾中有兩個文件

在終端輸入 git status(或者git st)查看文件狀態

11.jpg

此時文件顯示為紅色,並且是新建文件,說明是在工作區,表示文件沒有被跟蹤管理,因為我們需要git去管理他,所以輸入終端git add .,( add後面可以加參數,如果你只需要跟蹤start,txt可以輸入空格,再輸入start.txt ,如果全部都需要跟蹤,那麼輸入點. 注意後面有一個點)

輸入之後,我們git status 查看文件狀態

12.jpg

此時文件顯示綠色,且顯示為新的文件,表示暫存區的狀態,提交也只能提交暫存區的文件。那麼輸入git commit提交,此時會彈出一個編輯器。用來輸入我們的日誌,因為是第一次提交,我們輸入first commit。按下ESC,再按下冒號(shift+;)、輸入wq保存退出。

輸入git log,就能查看我們的記錄日誌

13.jpg

在下面就能看見我們是誰操作的文件,他的郵箱是多少,操作時間。和他書寫的日誌。

更改文件

此時、我們新建了兩個文件,輸入的相關的內容,保存起來,並且提交了,但是現實中經常是需要更改文件內容的。下面來演示如何更改文件的內容。

在終端輸入vi start.txt(vim start.txt也可以,這個如果有start.txt文件就會直接進入編輯狀態,如果沒有這個文件就會新建一個名為start.txt文件並且進入編輯狀態),進入編輯狀態,內容變更second for text。按下ESC,再按下冒號(shift+;)、輸入wq保存退出。

此時,我們git status可以查看一下文件狀態,記住,如果遇到紅色的,表示我們工作區發生了改變。(git有三個區的概念,工作區,暫存區,歷史提交區、工作區表示現在看到的磁碟上的文件。如果想記錄我們的文件,可以先把文件提交到暫存區,等待其他關聯文件的提交、)

14.jpg

此時文件為紅色,並且為modified,表示文件更改,我們需要跟蹤,git add start.txt 然後可以查看一下我們的文件狀態git status

15.jpg

這時文件變為綠色、表示已經加入暫存區。並且可以提交。那麼可以直接提交git commit。我們也可以輸入git commit -m 加上雙引號 裡面輸入我們的日誌,代表輸入日誌並且提交、然後可以輸入git log查看日誌狀態,那麼我們就可以看到近兩次的日誌

16.jpg

這樣我們就演示了兩次完整的操作,第一次是兩個新文件,我們需要跟蹤,git add 加入到暫存區,然後就git commit提交。第二次是我們直接vim更更改現有的文件,git add加入暫存區,然後在git commit提交。

那我們也可以不加入暫存區,直接進行提交,但是前提是我們已經git add跟蹤過文件並且git commit提交過。那麼我們可以直接輸入git commit -a -m 「日誌」也可以直接提交文件

整理一下目前學的幾個命令

git init初始化git

git add 跟蹤文件

git commit 提交文件

git log 查看日誌

git status 查看文件狀態

git clear 清除屏幕

ls 查看文件夾中都有什麼內容

查看不同

現在vi start.txt 打開start.txt並修改、在我們start中添加一行內容add something。保存退出(按照上述方式,不再贅述)。

此時輸入git diff能夠查看到文件的增刪改查的變化。(git diff 後面可以直接加上start.txt也可以查看全部 git diff .)

17.jpg

git diff的作用遠不止於此

現在git add . 把文件放入暫存區,然後輸入git diff . 發現沒有提示什麼

18.jpg

剛在在工作區是查看文件修改後的狀態和之前歷史提交的狀態的變化,現在我們把文件的git add修改提交到了暫存區,工作區恢復之前是一樣的,所以我們輸入git diff不會產生任何提示。現在文件提交到了暫存區,對於暫存區來說是有區別的。那麼輸入 git diff --staged,可以查看暫存區的變化,如圖所示

19.jpg

現在我們提交文件並輸入日誌 git commit -m 「third commit」 把文件提交都歷史記錄區,然後再查看不同git diff . 這次也沒有什麼提示了。因為暫存區也恢復上次歷史提交狀態。

20.jpg

刪除文件

git rm start.txt可以在暫存區刪除文件。表示把文件移入到暫存區並且刪除文件。

21.jpg

修改文件名

git mv 舊文件名 新文件名

刪除start.txt后。ls查看下,現在還有goon.html 那麼現在輸入 git mv goon.html go.html表示把文件goon.html 更改為go.html ,ls查看一下,現在名字成功更改。

22.jpg

查看一下文件狀態,能看到現在文件是在暫存區,那麼我們git commit提交並書寫日誌就可以了。為了確認狀態 git status 提示現在乾淨了就可以了、

23.jpg

這就是git的一些簡單操作,當然git遠不止這麼簡單。還有關於分支和github。陸續會介紹

Advertisements

你可能會喜歡