# GitHub 基本操作 — Day 3
主題:VSCode 整合操作 & 進階 Git 指令
---
## 課程目標
1. 在 VSCode 中整合 Git 操作
2. 熟悉更多 Git 指令(status、log、diff、restore、rm、mv)
3. 學會追蹤檔案修改歷史
4. 為下週的「Branch 與協作」打好基礎
---
## 第一單元:VSCode 與 Git 整合
---
### 為什麼用 VSCode?
* 介面整合 Git 功能
* 可視化查看修改、commit 歷史
* 方便與 GitHub 連動(Push / Pull / Branch)
---
### 準備環境
1. 安裝好 VSCode
2. 確認 Git 已安裝(終端機輸入 `git --version`)
---
### 開啟專案資料夾
1. 打開 VSCode
2. 選擇「開啟資料夾」
3. 選擇上週 clone 的專案
(沒保留的話就重新 clone)
---
## 第二單元:在 VSCode 內完成 Git 操作
---
### 建立儲存庫時的 git 指南

---
### 請 ChatGPT 進行中文翻譯後

---
---
### 使用內建終端機執行指令
在 VSCode 按下:
```
Ctrl + `
```
即可開啟內建終端機(Terminal)
之後可輸入 Git 指令操作,例如:
```bash
git status
git add .
git commit -m "VSCode commit"
git push
```
---
## 第三單元:更多 Git 指令
---
### 1️⃣ 查看狀態
```bash
git status
```
> 查看哪些檔案被修改、哪些在暫存區。
---
### 2️⃣ 查看提交紀錄
```bash
git log
```
* `git log --oneline`:簡潔版
* `git log --graph --decorate`:顯示分支樹狀圖
---
#### `git log` 操作鍵
| 操作鍵 | 功能 |
| ----- | ------------------- |
| ↑ / ↓ | 向上或向下捲動一行 |
| 空白鍵 | 向下捲動一整頁 |
| b | 向上捲動一整頁 |
| g | 跳到開頭 |
| G | 跳到結尾 |
| /關鍵字 | 搜尋關鍵字(例如 `/commit`) |
| n | 跳到下一個搜尋結果 |
| q | 離開並回到命令列 |
---
### 3️⃣ 比較修改差異
```bash
git diff
```
> 顯示尚未加入暫存區的修改內容。
若想比對不同版本:
```bash
git diff HEAD~1 HEAD
```
---
### 4️⃣ 還原修改(未 commit)
```bash
git restore <檔案名稱>
```
> 恢復成上次 commit 的版本。
---
### 5️⃣ 移除檔案並追蹤刪除
```bash
git rm <檔案名稱>
git commit -m "刪除檔案"
```
---
### 6️⃣ 重新命名檔案
```bash
git mv 舊檔名 新檔名
git commit -m "重新命名檔案"
```
---
## 第四單元:查看修改歷史與回溯
---
### 檢視歷史版本
```bash
git log --oneline
```
找到目標版本的哈希值(例如 `a1b2c3d`)
---
### 暫時回到舊版本
```bash
git checkout a1b2c3d
```
(⚠️ 只查看,別修改!否則會進入分離 HEAD 狀態)
---
### 回到最新版本
```bash
git switch main
```
---
## 第五單元:綜合實作練習
---
## 課程回顧
✅ VSCode 整合 Git 操作
✅ 進階指令(status / log / diff / restore / rm / mv)
✅ 使用 Timeline 追蹤歷史
---
## 範例指令快速複製
```bash
# 查看狀態
git status
# 查看歷史
git log --oneline
# 比較修改
git diff
# 還原修改
git restore hello.txt
# 刪除或改名
git rm old.txt
git mv old.txt new.txt
# Commit & Push
git add .
git commit -m "更新內容"
git push
```
{"title":"GitHub 基本操作 — Day 3","description":"主題:VSCode 整合操作 & 進階 Git 指令","contributors":"[{\"id\":\"b831f9fa-52bb-4a09-bfbb-148e4fdadd0f\",\"add\":2618,\"del\":429,\"latestUpdatedAt\":1761660034245}]"}