簡單介紹Git版本控制
Tommy
環境安裝
Mac很幸福可以跳過此步驟
安裝Git for windows
https://git-scm.com/download/win
圖形化介面安裝
江湖在走,指令還是要懂
TortoiseGit
windows推薦
SourceTree
Mac推薦
基本Command指令
今天以windows為主
help
列出內建常用的指令名稱
任何指令 /?
查詢指令的用法
dir
列出目前資料夾裡面的檔案和資料夾
cd
切換資料夾
cd..
回到上層
cd\
回到磁碟機最上層
d:
切換到神秘的低潮
Unix like無磁碟機概念
/dev/sda
/dev/sdb
md
建立資料夾
rd
刪除資料夾
Mac有rm -rf /
Windows有rd \ /s/q
千萬母湯手殘加眼殘
type
查看檔案內容
如何建立空白檔案
echo.>file.txt
產生空白行的檔案
type nul>file.txt
產生完全空白檔案
del
刪除檔案
move
移動檔案
copy
複製檔案
ren
更改檔名
Git指令操作
git
列出git指令名稱和說明
git init
在目前的資料夾建立本地端檔案庫
git init folder
建立folder資料夾並同時建立本地端檔案庫
git config user.name "tommy"
設定當前檔案庫使用者名稱
git config user.email "tommy@gmail.com"
設定當前檔案庫電子信箱
Git規定:所有commit必須要有使用者名稱和信箱
抓是誰出包比較容易
git config --global user.name "tommy"
設定全域使用者名稱
git config --global user.email "tommy@gmail.com"
設定全域電子信箱
git config --list
列出目前有效的設定
git config --list --local
列出當前檔案庫設定
git config --list --global
列出全域設定
git config --list --system
列出系統設定
git status
查看目前暫存區的狀態
git add .
加入所有檔案到暫存區
git add *.html
加入任何.html檔案到暫存區
git add *.js index.css
加入任何.js檔案和index.css到暫存區(用空白串接)
git reset index.html
取消加入暫存區的index.html
git commit -m "add index.html"
將暫存區的檔案commit到本地檔案庫
git add -u
只加入修改過被追蹤的檔案到暫存區
不包含新增的檔案
git commit -am "update"
被追蹤修改過的檔案commit到本地檔案庫
不包含新增的檔案
git commit --amend -m "modify"
修改最後一次commit的訊息和內容
移除檔案git rm test.html
.gitignore
排除被追蹤的檔案清單
(每個檔案或資料夾一行,可使用萬用字元)
git log
查詢commit紀錄
HEAD
工作目錄比對的基準
master
預設的分支名稱,類似變數指向commit
commit發生了什麼事?
HEAD和目前分支(master)都會移到最新的commit上
git cat-file -p HashID
查看hash id的內容
hash id最少4碼以上
100644 blob
一般檔案
040000 tree
資料夾
git show
查看最新commit修改的log包含異動內容
git show v.s. git log
有什麼不一樣?
git show
列出最後一個commit
包含異動內容
git log
列出所有的commit
不包含異動內容
git show CommitID
查看commit id與上一版的差異
git show CommitID abc.txt
查看commit id與上一版的檔案內容差異
如果沒有差異則顯示空白
git show CommitID:abc.txt
查看commit id版的完整檔案內容
git diff
比對暫存區和工作目錄的差異
git diff HEAD
比對HEAD和工作目錄的差異
git diff --cached
比對暫存區和HEAD之間的差異
git diff CommitID CommitID
比對兩個commit之間的差異
很燒腦吧?
複習今天講的指令
git init
git config
git status
git add
git reset
git commit
git log
git cat-file
git show
git diff
下次預告
取出checkout
回復revert
重設reset
分支branch
合併merge
收藏stash
標籤tag
Q&A
簡單介紹Git版本控制Part2
By Yi-Tai Lin
簡單介紹Git版本控制Part2
- 906