iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0

為什麼要用 Git?

Git 是分散式版本控制系統 DVCS(Distrubuted Version Control System)。
電腦本機(Local)、遠端伺服器(Remote)、每台電腦都有完整版本庫。

  • 免費、開源、速度快、檔案體積小。
  • 可離線工作,待上線再同步。
  • 安全性高,不像集中式版控系統(CVS、SVN)那樣伺服器一掛就全掛。

GUI vs CLI

  • 圖形化介面(Graphical User Interface):上手快。
  • 命令列介面(Command Line Interface):更精準、更可自動化。

終端機(Terminal)

Command Line 指令

指令 全名 / 功能 範例 說明
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 先建立資料夾,成功後才切換

Vim 是 Git 預設編輯器

  • i/a/o 這三個鍵其一進入Insert模式,便能開始打字
  • ESC 退回命令模式(Normal模式)
  • :w 存檔
  • :q 離開(未存擋會提示先存檔再離開)
  • :wq 存檔然後離開

Git 三大區塊

  • Working Directory:你的檔案實體工作區。
  • Staging Area:暫存區,準備要被提交的變更。
  • Repository:版本庫,真正寫入歷史的地方。

資料流向:
Working Directory --(git add)--> Staging Area --(git commit)--> Repository

常用的流程

1) 初始化

git init

2) 查看版本狀態

git status

3) 加入暫存區

git add <檔名>:加單一檔案
git add .:加當前目錄(含子目錄)內所有變更
git add --all:專案內所有變更(不受目前所在目錄限制)

4) 建立版本

git commit -m "有意義的提交訊息"

5) 比對差異(提交前後都可用)

git diff:在commit之前,可以看到你變動的差異
git diff --cached:暫存區的變動差異

6) 查紀錄

git log:越新的資訊在越上面,查看紀錄
git log --oneline --graph:資訊較為簡潔,可以看到更多commit

7) 使用者設定

輸入使用者名稱及使用者email

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?

沒有標準答案,原則是「一次commit表達一個明確的進度」。

常見時機:

  • 完成一個小任務/小步驟。
  • 暫時收工或切換工作上下文。
  • 需要保存/分享當前進度。

過度零碎會難讀,量大又難回溯。

gitignore

  • .gitignore:忽略不該被版控的東西(未被追蹤的檔案)。

若檔案已被追蹤,光加到 .gitignore 沒用,要先解除追蹤


參考資料


上一篇
Day17|陣列(Array)
系列文
程式小白的 30 天轉職挑戰18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言