Repo setting
Add & init repository¶
初始化 git repo
Check status¶
查詢當前目錄的 狀態
Check commit¶
可以加上--online與--graph看到不一樣的輸出格式
- 找某人的commit
- 找特定commit訊息
- 找commit檔案內容
- 找時間區間的commit
- 找特定檔案的commit紀錄
- 找特定行的commit message
file operation¶
增加檔案¶
將檔案交給git
git add --all與git add .在git 1.x版本有所不同,git add .不會處理刪除檔案的行為,但在git 2.x版本後兩者就相同了
在增加檔案時,可以加入-p再加上e選項,便能在編輯器內編輯想要加入暫存區的區塊
刪除檔案¶
用系統指令等方式直接刪除
再把修改的刪除檔案狀態 加 到暫存區上述動作,也可以用git rm做一次即可
如果不是真的想刪除檔案,只想把檔案移除git repo內,加入--cached參數即可
變更檔名¶
與刪除檔案一樣,直接用git mv完成操作
忽略檔案¶
在目錄內新增.gitignore,並把想忽略的檔名輸入進去就好
若要清除已經被忽略的檔案,可以使用git clean
復原檔案¶
要復原到最後一次的commit,可以使用git checkout
也可以復原至前幾次,或指定的commit
commit message¶
git commit只會處理暫存區的內容,還沒加到暫存區的檔案,就不會被commit到儲存庫內
可以加入--allow-empty就能在沒東西時也能commit
-a:對已存在repo內的舊檔案進行commit,不需要再add
修改commit訊息¶
-
--amend:修改最後一次的commit訊息 -
--
追加檔案至最近一次commit¶
同樣使用--amend參數
拆除commit¶
使用git reset,reset並不會真的把commit拆除,只是當前工作目錄的狀態改變
$ git reset e12d8ef^ # 拆除到e12d8ef前一次的commit
$ git reset e12d8ef~5 # 拆除到e12d8ef前五次的commit
$ git reset HEAD^ # 拆除HEAD前一次的commit
$ git reset 85e7e30 # 拆除到85e7e30
mixed¶
--mixed為預設參數,會將暫存區的檔案丟棄,但不會動到工作區的檔案
soft¶
--soft 都不會丟棄
hard¶
--hard會將暫存區與工作目錄的檔案全部丟棄
可以利用reflog查看HEAD移動的紀錄
分支¶
查看repo分支
.git目錄¶
git會將檔案及SHA-1值產生Blob物件(Binary large object)
一般看不出來檔案內容,需利用git cat-file查看
git會對檔案內容使用SHA-1計算,這也是為甚麼一個空的資料夾無法被git感應到