Git 是分散式版本控制系統 DVCS(Distrubuted Version Control System)。
電腦本機(Local)、遠端伺服器(Remote)、每台電腦都有完整版本庫。
指令 | 全名 / 功能 | 範例 | 說明 |
---|---|---|---|
cd |
change directory(切換目錄) | cd Documents |
進入 Documents 資料夾 |
pwd |
print working directory(顯示目前路徑) | pwd |
顯示目前所在的絕對路徑 |
ls |
list(列出檔案) | ls -al > list_result.txt |
列出所有檔案(含隱藏檔),並將結果輸出成檔案 |
mkdir |
make directory(建立新目錄) | mkdir newFolder |
建立名為 newFolder 的資料夾 |
touch |
建立檔案 | touch index.js |
建立一個空檔案 |
cp |
copy(複製檔案) | cp file1.txt file2.txt |
複製檔案 |
cp -r |
copy recursive(複製目錄) | cp -r src backup |
複製整個目錄 |
mv |
move(移動檔案 / 改檔名) | mv old.txt new.txt |
移動或重新命名檔案 |
rm |
remove(刪除檔案) | rm file.txt |
刪除單一檔案 |
rmdir |
remove directory(刪除目錄) | rmdir emptyFolder |
刪除空目錄 |
clear |
清除畫面 | clear |
清空終端機畫面 |
cat |
concatenate(顯示檔案內容) | cat file.txt |
顯示檔案內容 |
grep |
global regular expression print(搜尋) | grep "hello" file.txt |
在檔案中搜尋關鍵字 |
wget |
下載檔案 | wget https://123.com/file.zip |
從網址下載檔案 |
curl |
傳送 HTTP request | curl https://123.com |
發送 request 並顯示結果 |
echo |
顯示訊息 / 輸出到檔案 | echo "Hello" >> text.txt |
輸出訊息或寫入檔案 |
符號 | 功能 | 範例 | 說明 |
---|---|---|---|
> | 輸出覆蓋檔案 | echo "Hello" > text.txt |
會直接覆蓋 text.txt 內容 |
>> | 輸出追加到檔案 | echo "Hello" >> text.txt |
會把內容加到檔案最後一行 |
(pipe) | 將輸出傳給下一個指令 | cat file.txt | grep "error" |
|
&& | 前指令成功才執行後指令 | mkdir test && cd test |
先建立資料夾,成功後才切換 |
資料流向:Working Directory
--(git add)--> Staging Area
--(git commit)--> Repository
git init
git status
git add <檔名>:加單一檔案
git add .:加當前目錄(含子目錄)內所有變更
git add --all:專案內所有變更(不受目前所在目錄限制)
git commit -m "有意義的提交訊息"
git diff:在commit之前,可以看到你變動的差異
git diff --cached:暫存區的變動差異
git log:越新的資訊在越上面,查看紀錄
git log --oneline --graph:資訊較為簡潔,可以看到更多commit
git config -- global user.name "Ironman"
git config -- global user.email "Ironmangogogo@gmail.com"
git config -- list
user.name = Ironman
user.email = Ironmangogogo@gmail.com
沒有標準答案,原則是「一次commit表達一個明確的進度」。
過度零碎會難讀,量大又難回溯。
若檔案已被追蹤,光加到 .gitignore 沒用,要先解除追蹤