檢查歷史紀錄
$ git log
commit afe36485cb94078a1ba9a7377398247e4d181765 (HEAD -> master)
Author: liangsmfish <007liang7@gmail.com>
Date: Mon Dec 10 01:05:06 2018 +0800
add indexs
commit db2aeaf1543f0d634ff8a8e8497e7ad520bef2f4 (origin/master)
Author: liangfish <007liang7@gmail.com>
Date: Sun Dec 9 16:42:49 2018 +0800
add indexs
依序顯示的會是 每個 commit 的id
,作者
,時間
跟做了甚麼事情
條件過濾搜尋
$ git log --oneline --author="Andrew/|fish"
#搜尋 Andrew or fish 的 commit 紀錄
$ git log --oneline --grep="gg"
#搜尋 commit 訊息包含 "gg" 的紀錄
$ git log -S "print"
#搜尋 commit files 中 包含 "print" 的file
$ git log --oneline --since="9am" --until="12am" --after="2019-01"
#這樣可以找到「從 2019 年 1 月之後,每天早上 9 點到 12 點的 Commit」
修改與刪除檔案
$ git rm test.html # 刪除 test.html
$ mv test.html train.html # 把 test.html 改成 train.html
修改 Commit 紀錄
使用 –amend 參數來進行 (Commit只能處理最後一次)
$ git log --oneline
4879515 WTF
7dbc437 add hello.html
657fce7 add container
abb4f43 update index page
cef6e40 create index page
cc797cd init commit
$ git commit --amend -m "Welcome To Facebook"
[master 614a90c] Welcome To Facebook
Date: Wed Aug 16 05:42:56 2017 +0800
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 config/database.yml
$ git log --oneline
614a90c Welcome To Facebook
7dbc437 add hello.html
657fce7 add container
abb4f43 update index page
cef6e40 create index page
cc797cd init commit
追加檔案到最近一次的 Commit
使用 –amend 參數來進行 Commit
$ git add lost.html
$ git commit --amend --no-edit
這樣就可以把檔案併入最後一次的 Commit
新增目錄
git 不接受空目錄,所以要隨便初始一個空檔案
$ mkdir pic
$ touch pic/.gitkeep
過濾檔案進入Git
建立一個 .gitignore 規則檔案
$ touch .gitignore
然後編輯 gitignore
# 忽略單一檔案
secret.txt
# 忽略所有副檔名是 .tmp 的檔案
*.tmp
強迫闖關(無視規則)
$ git add -f 檔案名稱
原住民處理(在規則建立前存在者)
$ git rm secret.txt --cached #脫離Git 控管
$ git clean -fX #全部清除
檢視特定檔案的 Commit 紀錄
$ git log test.html
$ git log test.html -p #顯示每次commit的修改內容
檢查程式碼的作者
$ git blame index.html
$ git blame -L 5,10 index.html #顯示5~10行的範圍
復活檔案
$ rm *.html
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: test.html
$ git checkout test.html
$ git checkout . #全體復活