統一概念:
-
工作區:增刪檔案和內容
-
暫存區:鍵入命令 git add 改動的檔案,此次改動就放到了 『暫存區』
-
本地倉庫 :鍵入命令 git commit ,此次改動就放到了『本地倉庫』,每個 commit,我叫它為一個 『版本』。
-
遠端倉庫:鍵入命令 git push 到遠端倉庫,此次改動就放到了 『遠端倉庫』。
-
commit-id:輸出命令 git log,最上面那行 commit xxxxxx,後面的字串即 commit-id。
清理git的快取:
$ git rm -r --cached . // 清空當前資料夾的所有快取(本地的依然儲存) $ git rm -f . // 將當前資料夾的檔案清空,本地檔案也會清空,回收站也找不到,該指令請謹慎執行 $ git clean -df . // 本地檔案同樣會被刪除,回收站也找不到,該指令請謹慎執行
檢視當前git的狀態:
$ git status
檢視遠端倉庫:
$ git remote //簡寫 $ git remote -v //全程
修改之後的檔案以及新新增的檔案,在commit之前都需要先 add:(以 tmp.py 檔案和 data 資料夾為例)
$ git add tmp.py // 新增單個檔案
$ git add data/ // 新增一個目錄下的所有檔案
$ git add tmp.py data/ // 新增多個檔案或者資料夾
重新命名檔案,將 main.py 重新命名為 module.py:
$ git mv main.py module.py
commit到本地倉庫:
$ git commit -m "說明文字"
推送到遠端倉庫:
$ git push [remote-name] [branch-name]
當 remote-name 為 origin,branch-name 為 master時,git push origin master。
直接取消上一次 commit:
$ git reset HEAD~1 $ git reset --hard HEAD~1 // 加上引數“--hard”則不保留當前更改
如果想撤回上一次 add:
$ git reset HEAD // 如果後面什麼都不跟的話 就是上一次 add 裡面的全部撤銷了
$ git reset HEAD tmp.py // 就是對某個檔案進行撤銷了
檔案 .gitignore 的用法:
# 寫在 .gitignore 中的檔案/資料夾都不會加入到 git 倉庫中,當然前提是該檔案/資料夾之前就不在倉庫中,否則還是被 add 進來。如:
# 檔案
*.pyc
tmp.py
# 資料夾
.idea/
__pycache__/
git 刪除遠端倉庫:
$ git remote rm origin
git 新增遠端倉庫,並將其命名為 origin:(git 倉庫改成自己的即可)
$ git remote add origin https://github.com/wuliytTaotao/Learning-Materials.git
統計本地倉庫和遠端倉庫之間的的改動:(將 local_brach、origin/remote_branch 改成自己定義的名字,如 master)(如果本地倉庫只是遠端倉庫歷史中的某個節點,下面語句是不會顯示有什麼不同的。)
$ git diff --stat local_branch origin/remote_branch
git diff 的一些用法:
$ git diff // 輸出工作區和暫存區的 different (不同)。 $ git diff <commit-id> <commit-id> // 還可以顯示本地倉庫中任意兩個 commit 之間的檔案變動: $ git diff --cached // 輸出暫存區和本地最近的版本 (commit) 的 different(不同)。 $ git diff HEAD // 輸出工作區、暫存區 和本地最近的版本 (commit) 的 different (不同)。
git log 怎麼退出到命令列?輸入字母 'q' 即可。