# **คำสั่งตั้งค่า Gitea ใหม่ทั้งหมด + คำสั่งใช้งานประจำวัน / แก้ปัญหา / branch”**

---

📘 Git + Gitea (QNAP / Container Station) – Cheat Sheet
คู่มือนี้รวบรวม:

- คำสั่งตั้งค่า Gitea ใหม่ทั้งหมด
- คำสั่งใช้งาน Git ประจำวัน
- การแก้ไขปัญหา repository
- การทำงานกับ branch
- การ reset / clone / merge / rebase

---

## 🧩 SECTION 1 – การตั้งค่า Gitea ใหม่ทั้งหมด

🔹 1) เคลียร์ host key เดิม ใช้เมื่อ Gitea ถูก reset ใหม่ หรือ IP / key เปลี่ยน

```bash
ssh-keygen -R "[git.np-dms.work]:2222"
```

🔹 2) เชื่อมต่อครั้งแรก (จะมีคำถาม fingerprint)

```bash
ssh -T git@git.np-dms.work -p 2222
```

🔹 3) แสดง SSH public key เพื่อเพิ่มใน Gitea

```bash
cat /root/.ssh/id_ed25519.pub
cat /root/.ssh/id_rsa.pub
```

🔹 4) เพิ่ม remote ใหม่ (หากยังไม่ได้เพิ่ม)

```bash
git remote add origin ssh://git@git.np-dms.work:2222/np-dms/lcbp3.git
```

🔹 5) ลบ remote เดิมหากผิด

```bash
git remote remove origin
```

🔹 6) Push ครั้งแรกหลังตั้งค่า

```bash
git push -u origin main
```

🔹 7) Clone repo ใหม่ทั้งหมด

```bash
git clone ssh://git@git.np-dms.work:2222/np-dms/lcbp3.git
```

---

## 🧩 SECTION 2 – คำสั่ง Git ใช้งานประจำวัน

🟦 ตรวจสอบสถานะงาน

```bash
git status
```

🟦 ดูว่าแก้ไฟล์อะไรไป

```bash
git diff
```

🟦 เพิ่มไฟล์ทั้งหมด

```bash
git add .
```

🟦 Commit การแก้ไข

```bash
git commit -m "message"
```

🟦 Push

```bash
git push
```

🟦 Pull (ดึงงานล่าสุด)

```bash
git pull
```

🟦 Pull (ดึงงานล่าสุด) แบบ rebase

```bash
git pull --rebase
```

🟦 ดู log

```bash
git log
```


---
## 🧩 SECTION 3 – ทำงานกับ Branch

### ดู branch ทั้งหมด

```bash
git branch
```

### สร้าง branch ใหม่

```bash
git checkout -b feature/login-page
```

### สลับ branch

```bash
git checkout main
```

### ส่ง branch ขึ้น Gitea

```bash
git push -u origin feature/login-page
```

### ลบ branch ในเครื่อง

```bash
git branch -d feature/login-page
```

### ลบ branch บน Gitea

```bash
git push origin --delete feature/login-page
```

### Merge branch → main

```bash
git checkout main
git pull
git merge feature/login-page
git push
```

### Rebase เพื่อให้ history สวย

```bash
git checkout feature/login-page
git rebase main
git checkout main
git merge feature/login-page
git push
```

---

## 🧩 SECTION 4 – แก้ไขปัญหา Repo

🔴 (1) Reset repo ทั้งหมดให้เหมือน remote

⚠ ใช้เมื่อไฟล์ในเครื่องพัง หรือแก้จนเละ

```bash
git fetch --all
git reset --hard origin/main
```

🔴 (2) แก้ปัญหา conflict ตอน pull

```bash
git pull --rebase
```

🔴 (3) ดู remote ว่าชี้ไปทางไหน

```bash
git remote -v
```

🔴 (4) เปลี่ยน remote ใหม่

```bash
git remote remove origin
git remote add origin ssh://git@git.np-dms.work:2222/np-dms/lcbp3.git
```

🔴 (5) Commit message ผิด แก้ใหม่

```bash
git commit --amend
```

🔴 (6) ย้อน commit ล่าสุด (ไม่ลบไฟล์)

```bash
git reset --soft HEAD~1
```

🔴 (7) ดู log แบบสรุป

```bash
git log --oneline --graph
```

🔴 (8) Clone repo ใหม่ทั้งหมด (เมื่อพังหนัก)

```bash
rm -rf lcbp3
git clone ssh://git@git.np-dms.work:2222/np-dms/lcbp3.git
```

---

## 📌 END

```
