1、建立版本庫:
安裝git之後,在想要建立git倉庫的資料夾裡右擊滑鼠,選擇git bash here,會彈出乙個命令視窗,新建乙個資料夾,作為版本庫的名稱,比如repository,當然,你也可以手動新建資料夾後進入該資料夾執行$git init即可。
$mkdir repository
$cd repository
$git init
這樣就建好了乙個git版本庫,這時候我們會發現在repository下多了乙個.git的資料夾(windows下可能需要勾選資料夾選項中的顯示隱藏檔案)。
2、提交檔案
git有乙個暫存區,需要先使用add指令將檔案新增至暫存區,再使用commit指令將暫存區的內容提交到版本庫中。
如果將檔案add到暫存區之後,在commit執行之前做了修改,但是沒有再次執行add,那麼修改的內容是不會提交到git版本庫里的
。檔案路徑必須保證在repository版本庫的資料夾下,否則git是找不到的。例如我們提交乙個檔案test.txt,-m 後面的字串是本次提交的版本說明:
$git add test.txt
$git commit -m "提交txt檔案"
3、檢視日誌
我們關注的重點一般有版本、版本說明以及修改了哪些檔案,使用git log可以檢視從最近到最遠的
提交歷史日誌
,資訊很詳細,但通常不是我們想要看的。加上--pretty=oneline可以只檢視完整的版本號資訊+版本說明,或者只是加上--oneline檢視簡短的版本號資訊+版本說明(建議使用這個,比較好記,而且資訊量夠我們用了),類似03ea1705c0681bf8906fda037ea105a73a0dd9b2
就是版本號。使用git reflog可以檢視
操作歷史日誌
。如果我們想看有哪些檔案做了修改,在後面加上--stat就可以了。
$git log
commit 03ea1705c0681bf8906fda037ea105a73a0dd9b2 (head -> master)
author: hxl <[email protected]>
date: sun sep 10 19:45:13 2017 +0800
提交txt檔案
$git log --pretty=oneline
03ea1705c0681bf8906fda037ea105a73a0dd9b2 (head -> master) 提交txt檔案
$git log --oneline --stat (建議使用)
03ea170 提交txt檔案
test.txt | 0
0 file changed, 1 insertions(+), 0 deletions(-)
$git reflog
03ea170 (head -> master) head@: commit: 提交txt檔案
4、比較不同
我們開啟test.txt,輸入hello world,可使用git diff 《版本號》 《檔名》來檢視修改的地方,不加檔名或者版本號則預設是比較當前所有檔案與最新版本的所有檔案。
其中,head表示當前版本,head^表示上乙個版本,head^^表示上兩個版本,以此類推,當然,也可以用head~2表示上兩個版本。
$git diff 或者 $git diff test.txt 或者 $git diff head test.txt
diff --git a/test.txt b/test.txt
index e69de29..95d09f2 100644
--- a/test.txt
+++ b/test.txt
@@ -0,0 +1 @@
+hello world
\ no newline at end of file
5、檢視版本庫的狀態
很常用的命令,可能幫助我們檢視倉庫當前的狀態,例如有檔案修改(modified)、有檔案新建(untracked files)、沒有修改(nothing to commit, working tree clean
)等。
$git status
changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
6、回退到歷史版本
我們可以使用git reset --hard 《版本》 《檔案》回退到歷史版本,版本號可以通過git log檢視歷史版本。這裡值得注意的是,git log只顯示歷史版本,也就是說你回退到上乙個版本的時候,通過git log就再也找不回當前的版本了。難道說,我回去了就回不來了?其實是可以的,我們可以通過git reflog檢視所有的操作歷史記錄找回版本號,只要知道版本號,就可以隨意來回。
$git reset --hard head test.txt或者 git reset --hard 03ea170 test.txt
我們重新開啟test.txt檔案,發現hello world已經不見了,說明test.txt檔案回到了當前版本最初始的轉改,這裡版本號不需要寫全,寫前面幾位就好了(這也就是查詢歷史記錄是推薦使用--oneline而不是--pretty=oneline的原因之一),但是不能太短,至少能根據所寫的版本號識別是
唯一
對應的版本號。
7、撤銷修改
回退到歷史版本有時候不能滿足我們的需求,比如執行如下操作:修改-->add到暫存區-->修改,我們只想撤銷add之後的修改,如果執行reset會把add之前的修改也清除掉,不滿足我們的需求,此時我們可以使用git checkout -- 《檔案》來進行撤銷操作。如果沒有將檔案add到暫存區,那麼此操作類似於reset。注意檔案前面有兩個橫崗--
$git checkout -- text.txt
Git學習筆記(二)
1.忽略檔案 git提供了一種可配性很強的機制來允許使用者將制定的檔案或目錄排除在版本控制之外,它會檢查 倉庫的根目錄下是否存在乙個名為.gitignore的檔案,如果存在的話就去一行一行的讀取這個檔案裡邊的內容並把每一行指定的檔案或目錄排除在版本控制之外。注意.gitignore中指定的檔案或目錄...
Git學習筆記(二)
1 分支 git branch m master mymaster m引數告訴git要執行分支移動 重新命名 操作。另外兩個引數分別是分支原名稱和新名稱。git branch 檢視分支。該命令沒有引數,git顯示本地版本庫中所有的本地分支名稱。結果中,前面帶星號的分支是當前檢出的分支,即當前工作目錄...
Git學習筆記 二
小白一枚。學習筆記。僅供參考。歡迎指錯。二 基本的git概念 git版本庫不僅儲存庫中所有檔案的完整副本,而且儲存版本庫本身的副本。git維護的兩個主要的資料結構 物件庫 object store 索引 index 索引 臨時的 動態的二進位制檔案,它描述的是版本庫的目錄結構。更準確地說,索引捕獲專...