歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Git大法好——2.Git本地操作指令詳解

Git大法好——2.Git本地操作指令詳解

日期:2017/3/1 12:16:33   编辑:關於Linux

Git大法好——2.Git本地操作指令詳解

標簽: Git


引言

上節給大家講解了有關於Git的一些概念,Git的引入,Git的四個組成部分,Git文件的狀態,以及
Git的下載安裝;前面也講過Git和SVN有個明顯的差別就是,Git可以不需要網絡就可以進行版本
控制,這是因為Git中每個電腦都擁有一個本地的版本庫,而遠程的倉庫僅僅是作為我們交換修改
的一個工具!即使失去這個工具,我們也可以干活,只是交換修改不方便罷了,假如是SVN,遠程
服務器掛了…所以,我們使用Git的時候大部分時間都是在進行Git的一些本地操作,當然還有
遠程服務器分支合並的一些問題等,本節我們就先來熟悉一波本地操作的一些常用指令!本節
講解的內容概要如下:

1.設置您的身份信息(git config) 2.獲取幫助(git help) 3.創建本地的代碼倉庫(git init) 4.將文件放入暫存區(git add) 5.將暫存區的內容提交到本地倉庫(git commit) 6.查看當前工作區與暫存區的狀態(git status) 7.查看工作區與暫存區的差異(git diff) 8.查看提交更改的記錄(git log) 9.文件恢復——未add(git checkout) 10.文件恢復——已add未commit(git reset) 11.文件恢復(已commit)——版本回退(git reset HEAD^) 12.查看輸入的每一條指令(git reflog) 13.Git命令別名(git config –xxx alias.xxx xxx) 14.Git命令的自動補全(按兩次Tab鍵)

好的,開始本節內容(要先安裝好Git哦!)~


1.設置您的身份信息

安裝完Git,我們第一件要做的事情是先配置我們的身份信息,作為自己參與團隊協作的
一個身份標記,比如誰對某個文件進行了修改,鍵入下述命令:

git config --global user.name "coder-pig"
git config --global user.email "[email protected]"

配置完後,把”“部分信息去掉,輸多一次上面的指令,可以看到是否配置成功

\

也可以鍵入下述指令來查看所有的Git設置:

git config --list

\

另外,上面設置的配置信息是全局的,一般我們在公司上班,基本協作的都是公司
的項目,這裡可以設置全局的配置,用global<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPqOsv8nE3MTj09DX1Ly6y73Iy7XEz+7Ev6OsxMfDtDxiciAvPg0KxOO/ydLUtaW2wLXEzqrV4rj2z+7Ev8no1sPSu7j2vtayv7XExeTWw6OsvPzI68/CyvbD/MHuo7o8L3A+DQo8cHJlIGNsYXNzPQ=="brush:java;"> git config --local user.name "coder-pig" git config --local user.email "[email protected]"

僅僅只需要把global改成local即可~此時這個倉庫的git配置就不會和全局的相同,
從而可以避免一些不必要的麻煩!


2.獲取幫助

和其他的命令行一樣,Git同樣是帶有help指令的,當我們遇到沒見過,又或者忘記用法的
指令,我們可以鍵入:

git help init

把init改成你要查詢的那個指令即可!比如git help add

\

win下會打開一個Git的Manual(手冊)的頁面,可以在之類查看指令的一些用法
而Ubuntu下則會直接在命令行輸出:

當然你也可以到Git官方手冊中查找對應的指令!


3.創建本地的代碼倉庫

你可以直接鍵入下述指令創建一個新的帶Git倉庫的項目:

git init GitForTest

\

把GitForTest改成你想創建的工程名即可!接著我們可以來到新創建的工程的
目錄下,這裡需要 修改下讓隱藏文件可見,就可以看到.git的文件夾裡,裡面
東東就是我們git倉庫的東東了,切記 別隨意去改或者刪除裡面的東西!(你也
可以鍵入:ls -ah來查看隱藏文件)

當然假如你已經有項目了,想在之前項目的基礎上添加Git倉庫,那麼通

過命令行或者git bash來到當前工程的文件夾目錄下,鍵入下述指令即可
為你的項目添加本地Git倉庫:

git init

4.將文件放入暫存區

前面Git文件狀態我們講過假如文件未加入版本控制,那麼該文件處於Untracked
(未跟蹤)的狀態,我們可以通過git add指令將文件添加到暫存區中此時文件會變
Tracked(已跟蹤)狀態!我們可以使用下面的指令,將文件一個個添加到暫存區中:

git add README.md

假如要添加的文件很多的話,這樣一個個添加顯得有些麻煩,我們可以一次性的添加多個:

1)將所有tracked文件中被修改或已刪除的文件信息添加到Git暫存區,不會處理untracked的文件!

git add -u

2)將所有tracked文件中被修改或已刪除的文件信息添加到Git倉庫,會把理untracked的文件信息
也加入Git暫存區

git add -A

3)把當前工作區的所有文件全加入到Git暫存區

git add .

除了上面三種外,git其實還為我們提供了交互界面模式,我們可以鍵入:

git add -i

\

上圖的流程是這樣的

1.我先在GitForTest的文件夾裡創建了兩個文件
2.鍵入git add -i,進入後,鍵入4,選擇添加untracked的文件
3.他給我們列出了untracked的文件,然後我們根據序號來添加文件
4.輸入?會彈出相關提示,然後直接回車,結束選擇!
5.然後再次輸入git add -i,輸入4,可以看到已不存在untacked的文件了!

當然還有其他幾個指令,限於篇幅,有興趣的可以自己研究研究!


5.將暫存區的內容提交到本地倉庫

我們可以通過git commit -m “xxx”指令將暫存區的內容提交到倉庫中

git commit -m "修改了xxx"

後面的-m是對本次提交的說明,”xxx”是說明內容,不該偷懶省去,假如你這裡不
輸入,-m “xxx” 的話,也會讓你進入Vi/Vim來編寫聲明信息的~所以建議還是在這
裡進行提交內容的說明吧!

\

另外,我們的項目可能存在一些幾百年不變的或者自動生成的文件,比如lib,
gen,bin文件夾等,我們沒必要每次都把這些都commit,我們可以在.git同級
的目錄下創建一個名為.gitignore的文件,然後編輯內容,把不需要提交的文
件寫上,那麼commit的時候就會自動忽略這些文件的了~:


6.查看當前工作區與暫存區的狀態

我們可以用git status指令來查看工作區與暫存區的當前情況,比如工作區有什麼
文件和暫存區的文件 對比,發生了改變,要不要add下?又比如暫存區裡有東西add
了,但是還沒提交等等,直接鍵入下述指令:

git status

比如我這裡修改了下README.md文件,只是改了還沒add:

\

add文件後:

commit提交暫存區內容

恩,很簡單,另外,你還可以用下述指令,讓結果以簡短的形式輸出~

git status -s

7.查看工作區與暫存區的差異

上面我們可以通過git status獲取當前工作區與緩存區的狀態,僅僅是狀態,
假如我們需要查看發生改變的內容,那麼你需要鍵入下述指令:

git diff

\

這樣就可以看到當前的工作區與暫存區中對比,做了哪些修改!
PS:上面是我們在README.md文件裡添加了一條語句,然後再鍵入git diff


8.查看提交更改的記錄

還記得之前的網購的例子嗎,我們可以在我的訂單中找到自己的訂單記錄,
同樣,在Git中,我們也可以查看所有commit的記錄!可以鍵入下述指令:

git log

\

當然,你也可以調用下述指令獲得更精簡的結果

git log --oneline

\

如果上面還滿足不了你的話,可以參考:Viewing the Commit History
對log進行定制,比如:


9.文件恢復——未add

我們可以直接右鍵刪除一個文件,又或者進入命令行,鍵入rm xxx.xxx將文件刪除,
但是刪除的僅僅是 當前工作區裡的文件,暫存區裡還是存在著該文件的,所以此時
你鍵入git status的話,你會看到這樣的結果:

\

Git告訴你工作區的文件被刪除了,然後你有兩種選擇:

1)把暫存區裡的文件也刪了,那麼鍵入:

git rm "xxx.xxx"
git commit -m "xxx"

2)誤刪了,將暫存區的文件恢復到工作區,那麼可以鍵入:

git checkout -- xxx.xxx

duang!被刪除的文件又回來了~
當然,上面的checkout不止適用於誤刪文件,當你把一個文件改得面目全非的時候,
你突然後悔了,但是你已經ctrl+s保存了很多次代碼了,你可以用用上述指令回到
這個文件的最初樣子!(前提是你還沒add!)


10.文件恢復——已add未commit

假如你已經把文件用git add到了暫存區,那麼此時你直接用checkout文件是沒有
作用的!我們需要通過git reset指令來廢除此次修改記錄(版本回退),讓當前文件
回到上一次提交時的狀態!鍵入:

git reset HEAD xxx.xxx

此時再調用:

git checkout -- xxx.xxx

文件即可恢復原樣!


11.文件恢復(已commit)——版本回退

假如,我們的文件修改已經commit了,而你無端端的又後悔了,想恢復成上一次
commit時的文件,又或者上上次的,這時候你可能開始方了,不過Git為我們提
供了時光機(版本回退),我們可以通過下述指令回退到上一個版本:

git reset HEAD^

\

恩,我們鍵入git log後可以看到版本已經回退到上一個版本了!
如果是上上個版本,你只需加多^,再上一個版本繼續加^,如此類推!
當然,除了上面的形式,你還可以根據版本號來回退,比如這裡我退到第一個版本

git reset --hard 8c3f91f

嘿嘿,無壓力,你突然又後悔了,想回到新的那個版本,嗯…好吧,同樣是上面
的指令:不過版本號改成最新那次commit的版本號就可以了!

git reset --hard cf2d155

12.查看輸入的每一條指令

你可能會支支吾吾的過來對我說:”恩,那個我剛剛把命令行關了,那個最新的版
本號找不著了,git log也找不到那個最新的版本號,那我是不是不能回未來了?
“幸運的是,Git時光機會記錄你輸入的每一條指令,你只需鍵入下述指令:

git reflog

\

拿到版本號,git reset即可~
另外有一點要注意的是:git reflog並不會永遠保存,
Git會定期清理“用不到的對象”,所以別指望還能找到幾個月前的提交!


13.Git命令別名

如果想偷懶,想少敲幾個字母,可以為命令設置別名,然後鍵入別名就調用對應指令,
比如將status設置成st:

\


14.Git命令的自動補全

輸入Git命令的時候按兩次Tab就可以了!


小結:

本節給大家詳細地講解了一波Git的本地命令,應該可以滿足日常的需要了,學習這一節,建議
自己建一個倉庫,按著一步步走一遍指令,相信你會獲益匪淺,敲得多就熟悉了!下節我們來
講解分支相關的概念以及指令!謝謝~


Copyright © Linux教程網 All Rights Reserved