> ## Documentation Index
> Fetch the complete documentation index at: https://docs-th.stardeck.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# การทำงานกับ Branches

> เรียนรู้วิธีการจัดการและทำงานกับ Git branches ในโปรเจค Stardeck ของคุณ

## ภาพรวม

โปรเจค Stardeck ถูกสร้างขึ้นรอบ **Git repositories ที่โฮสต์บน GitHub** ทุกโปรเจค Stardeck เชื่อมต่อกับ GitHub repository และการพัฒนาทั้งหมดเกิดขึ้นผ่าน Git branches แนวทาง Git-first นี้ให้คุณควบคุมเวอร์ชันที่ทรงพลัง ฟีเจอร์การทำงานร่วมกัน และความสามารถในการทำงานกับโปรเจคหลายเวอร์ชันพร้อมกัน

เมื่อคุณสร้างโปรเจค Stardeck คุณกำลังสร้าง deployment pipeline ที่เชื่อมต่อกับ branches เฉพาะใน GitHub repository ของคุณ จากนั้นคุณสามารถเลือก branches ที่จะ publish และ deploy ให้ออนไลน์

### ทำไม Branches ถึงสำคัญใน Stardeck

* **การพัฒนาแยกส่วน** - แต่ละ branch แสดงถึงสภาพแวดล้อมแยกสำหรับการพัฒนาและทดสอบ
* **การ Publish ด้วยตัวเอง** - คุณควบคุมว่า branches ไหนจะ publish และ deploy ออนไลน์
* **การทำงานร่วมกัน** - สมาชิกในทีมสามารถทำงานกับฟีเจอร์ต่างๆ พร้อมกัน
* **การทดลองอย่างปลอดภัย** - ทดสอบฟีเจอร์ใหม่โดยไม่กระทบ deployment หลักของคุณ
* **การควบคุมเวอร์ชัน** - ประวัติ Git แบบเต็มและความสามารถในการย้อนกลับการเปลี่ยนแปลง

## แนวคิดหลัก

### การผสานรวม GitHub

โปรเจค Stardeck ทั้งหมดเชื่อมต่อกับ GitHub repositories Stardeck:

* เชื่อมต่อกับ GitHub branches ของคุณสำหรับการพัฒนา
* ให้เครื่องมือจัดการว่า branches ไหนจะติดตาม
* ให้คุณ publish branches ด้วยตัวเองเมื่อพร้อม
* ผสานรวมกับ merge และ pull request workflows ของ GitHub

### Branch เริ่มต้น

ทุกโปรเจคมี **default branch** (มักจะเป็น `main` หรือ `master`) ที่ทำหน้าที่เป็น:

* การ deployment หลักสำหรับโปรเจคของคุณ
* เวอร์ชัน production หลักของแอปพลิเคชันของคุณ
* เป้าหมายสำหรับการ merge ส่วนใหญ่
* Branch ที่ได้รับการปกป้องซึ่งไม่สามารถลบได้โดยไม่ตั้งใจ

### การติดตาม Branch

ไม่ใช่ทุก GitHub branches จะพร้อมใช้งานใน Stardeck โดยอัตโนมัติ คุณควบคุมว่า Stardeck ควรจะ:

* **ติดตาม** - ทำให้พร้อมใช้งานสำหรับการพัฒนาและ publishing
* **จัดการ** - รวมในแดชบอร์ดและ workflows ของ Stardeck
* **Publish** - เมื่อคุณพร้อมที่จะ deploy ออนไลน์

## เริ่มต้นใช้งาน Branches

### ดู Branches ของคุณ

1. **ไปที่โปรเจคของคุณ** ในแดชบอร์ด Stardeck
2. **คลิกตัวเลือก branch** ใน sidebar หรือ navigation ด้านบน
3. **ดู tracked branches ทั้งหมด** พร้อมสถานะปัจจุบันและ deployment URLs

แต่ละ branch แสดง:

* ชื่อ branch และข้อมูล commit ล่าสุด
* สถานะ publishing (published, unpublished)
* ลิงก์โดยตรงไปยัง deployment ที่ออนไลน์ (ถ้า published)
* การตั้งค่าและตัวเลือกการจัดการ

### การสร้าง Branches ใหม่

คุณสามารถสร้าง branches ใหม่โดยตรงจาก Stardeck:

1. **เปิดตัวเลือก branch** ในโปรเจคของคุณ
2. **คลิก "New" → "Create new branch"**
3. **ใส่ชื่อ branch** ตามแนวทางของทีมคุณ
4. **เลือก base branch** (ค่าเริ่มต้นเป็น branch ปัจจุบัน)
5. **คลิก "Create"** - Stardeck จะสร้าง branch บน GitHub และเริ่มติดตาม

<Note>
  Branches ใหม่ถูกสร้างบน GitHub และติดตามโดยอัตโนมัติใน Stardeck คุณสามารถเริ่ม push commits เพื่อทำงานกับฟีเจอร์ได้ทันที เมื่อพร้อม คุณสามารถ publish branch ผ่านการตั้งค่า Deployment
</Note>

### การติดตาม GitHub Branches ที่มีอยู่

หากคุณมี branches ที่มีอยู่บน GitHub ที่ยังไม่ได้รับการติดตาม:

1. **เปิดตัวเลือก branch**
2. **คลิก "New" → "Track existing branch"**
3. **ค้นหาและเลือก** GitHub branch ที่คุณต้องการติดตาม
4. **คลิกชื่อ branch** เพื่อเริ่มติดตามใน Stardeck

<Warning>
  สามารถติดตามได้เฉพาะ branches ที่มีอยู่บน GitHub เท่านั้น ตรวจสอบให้แน่ใจว่าคุณได้ push local branches ของคุณไปยัง GitHub ก่อน
</Warning>

## การจัดการ Branch

### การตั้งค่า Branch

แต่ละ branch มีการตั้งค่าของตัวเองที่สามารถเข้าถึงได้ผ่านไอคอนเกียร์:

**ข้อมูล Branch:**

* ชื่อ branch และ commit SHA ล่าสุด
* ไม่ว่าจะเป็น default branch หรือไม่
* สถานะการเชื่อมต่อกับ GitHub

**การกระทำ:**

* **View on GitHub** - เปิด branch บน GitHub ในแท็บใหม่
* **Stop Tracking** - ลบ branch จาก Stardeck (GitHub branch ยังคงอยู่)

### การสลับระหว่าง Branches

1. **คลิกตัวเลือก branch** ในโปรเจคของคุณ
2. **เลือก tracked branch ใดก็ได้** เพื่อสลับไป
3. **ทำงานกับ deployment และสภาพแวดล้อมการพัฒนาของ branch นั้น**

แต่ละ branch รักษา:

* สภาพแวดล้อมการพัฒนาและการตั้งค่าของตัวเอง
* สถานะ publishing และตัวเลือก deployment
* ประวัติ build และ logs (เมื่อ published)

### ตัวบ่งชี้สถานะ Branch

* **🟢 Published** - Branch ถูก publish และสามารถเข้าถึงได้ผ่าน live URL
* **🟡 Building** - Branch กำลังถูก build สำหรับการ publication
* **🔴 Failed** - การ publication ล้มเหลว (ตรวจสอบ logs สำหรับรายละเอียด)
* **⚫ Unpublished** - Branch ถูกติดตามแต่ไม่ได้ publish

### การ Publish Branches

เพื่อให้ branch สามารถเข้าถึงได้ผ่าน live URL คุณต้อง publish:

1. **สลับไปยัง branch** ที่คุณต้องการ publish
2. **ไปที่ Project Settings** → แท็บ **Deployment**
3. **คลิก "Publish"** เพื่อ deploy branch ให้ออนไลน์
4. **เข้าถึง published branch ของคุณ** ที่ URL ที่สร้างขึ้น

<Note>
  เฉพาะ published branches เท่านั้นที่มี live URLs ที่สามารถเข้าถึงได้ การติดตาม branch ทำให้พร้อมใช้งานสำหรับการพัฒนาแต่ไม่ได้ deploy อัตโนมัติ
</Note>

<Warning>
  การ publishing สร้าง deployment ใหม่ แต่ละ branch deployment ใช้ทรัพยากร ดังนั้น publish เฉพาะ branches ที่คุณต้องการให้ออนไลน์
</Warning>

## การ Merge Branches

Stardeck ให้เครื่องมือที่ทรงพลังสำหรับการ merge branches ในขณะที่รักษาประวัติ Git ของคุณ:

### การตรวจสอบสถานะ Merge

ก่อน merging Stardeck ตรวจสอบโดยอัตโนมัติ:

* **Merge conflicts** - ไม่ว่า branches จะสามารถ merge ได้อย่างสะอาดหรือไม่
* **สถานะ Branch** - มี commits มากน้อยแค่ไหนข้างหน้า/ข้างหลัง
* **ตัวอย่าง Commit** - การเปลี่ยนแปลงที่แน่นอนที่จะถูก merge

### การดู Commits ที่จะถูก Merge

เมื่อ branch พร้อมที่จะ merge คุณจะเห็น:

* **จำนวน commit ทั้งหมด** - จำนวน commits ที่จะถูก merge
* **รายละเอียด Commit** - ข้อความ ผู้เขียน วันที่ และ SHA สำหรับแต่ละ commit
* **สรุปการเปลี่ยนแปลง** - สิ่งที่จะรวมอยู่ใน merge

### การทำ Merges

1. **เปิดการตั้งค่า branch** (ไอคอนเกียร์ถัดจาก branch ใดก็ได้)
2. **เลือก target branch ของคุณ** (มักจะเป็น default branch)
3. **ตรวจสอบสถานะ merge** และรายการ commit
4. **คลิก "Rebase & Merge"** เมื่อพร้อม

<Note>
  Stardeck ใช้ **rebase merging** เพื่อรักษาประวัติ Git ที่สะอาดและเป็นเส้นตรง สิ่งนี้รักษา commits แต่ละรายการในขณะที่หลีกเลี่ยงความยุ่งเหยิงจาก merge commit
</Note>

### การแก้ไข Merge Conflict

หากมี conflicts:

* Stardeck จะบ่งชี้อย่างชัดเจนว่าไฟล์ใดมี conflicts
* คุณจะต้องแก้ไข conflicts บน GitHub หรือในเครื่อง
* Push การเปลี่ยนแปลงที่แก้ไขแล้วก่อนที่จะพยายาม merge อีกครั้ง

## ฟีเจอร์ขั้นสูง

### การผสานรวม GitHub

**View on GitHub:**

* คลิกปุ่ม "View on GitHub" ในการตั้งค่า branch
* เปิด branch เฉพาะบน GitHub สำหรับการ code review
* เข้าถึงเครื่องมือการทำงานร่วมกันแบบเต็มของ GitHub

**การซิงค์อัตโนมัติ:**

* Stardeck อยู่ในการซิงค์กับ GitHub repository ของคุณ
* Commits ใหม่เรียกใช้ automatic deployments
* การลบ branch บน GitHub สะท้อนให้เห็นใน Stardeck

### การปกป้อง Branch

**ความปลอดภัย Default Branch:**

* ไม่สามารถหยุดติดตาม default branch โดยไม่ตั้งใจได้
* ได้รับการปกป้องจากการลบผ่าน interface ของ Stardeck
* รักษาความเสถียรของ deployment หลักของคุณ

**กล่องโต้ตอบการยืนยัน:**

* การกระทำทั้งหมดที่เป็นอันตรายต้องการการยืนยัน
* คำเตือนที่ชัดเจนเกี่ยวกับสิ่งที่จะเกิดขึ้น
* มาตรการป้องกันที่ปลอดภัยป้องกันการสูญเสียข้อมูลโดยไม่ตั้งใจ

### การหยุดติดตาม Branch

เมื่อคุณไม่ต้องการ branch ใน Stardeck อีกต่อไป:

1. **เปิดการตั้งค่า branch** สำหรับ branch ที่คุณต้องการหยุดติดตาม
2. **คลิก "Stop Tracking"** (พร้อมใช้งานเฉพาะสำหรับ branches ที่ไม่ใช่ default)
3. **ยืนยันการกระทำ** ในกล่องโต้ตอบ

<Warning>
  การหยุดติดตามลบ branch จาก Stardeck แต่ปล่อยไว้บน GitHub คุณสามารถเริ่มติดตามอีกครั้งได้ในภายหลัง
</Warning>

## แนวทางปฏิบัติที่ดีที่สุด

### การตั้งชื่อ Branch

* ใช้ชื่อที่อธิบาย: `feature/user-authentication`, `fix/login-bug`
* ปฏิบัติตามแนวทางของทีมอย่างสม่ำเสมอ
* ทำให้ชื่อสั้นแต่มีความหมาย

### เมื่อใดควรสร้าง Branches

* **ฟีเจอร์ใหม่** - แต่ละฟีเจอร์ได้รับ branch ของตัวเอง
* **การแก้ไขบั๊ก** - แยกการแก้ไขจากการพัฒนาที่กำลังดำเนินการ
* **การทดลอง** - ทดสอบไอเดียโดยไม่กระทบโค้ดหลัก
* **การทำงานร่วมกัน** - นักพัฒนาหลายคนสามารถทำงานพร้อมกัน

### กลยุทธ์ Merge

* **Merge สม่ำเสมอ** - อย่าปล่อยให้ branches ตามหลังมากเกินไป
* **Commits เล็กๆ** - ง่ายต่อการ review และ merge
* **ทดสอบก่อน merging** - ใช้ branch deployments เพื่อตรวจสอบการเปลี่ยนแปลง
* **ประวัติที่สะอาด** - Rebase merging รักษาประวัติ Git ให้อ่านได้

### การทำงานร่วมกันของทีม

* **ใช้ GitHub pull requests** สำหรับ code review ก่อน merging
* **สื่อสาร** เกี่ยวกับ branches ที่กำลังใช้งานอยู่
* **เอกสาร** จุดประสงค์ของ branch และสถานะปัจจุบัน
* **จัดระเบียบ** branches เก่าเป็นประจำ

***

*พร้อมที่จะเริ่มทำงานกับ branches แล้วหรือยัง? สร้าง feature branch แรกของคุณและสัมผัสพลังของการพัฒนาแบบ Git-based กับ Stardeck*
