|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "5c383cc2cc23bb164b06417d1c107a44",
|
|
|
"translation_date": "2026-01-06T22:25:39+00:00",
|
|
|
"source_file": "1-getting-started-lessons/2-github-basics/README.md",
|
|
|
"language_code": "th"
|
|
|
}
|
|
|
-->
|
|
|
# Introduction to GitHub
|
|
|
|
|
|
สวัสดี นักพัฒนามือใหม่ในอนาคต! 👋 พร้อมที่จะเข้าร่วมกับนักเขียนโค้ดนับล้านทั่วโลกแล้วหรือยัง? ฉันตื่นเต้นอย่างจริงใจที่จะพาคุณไปรู้จักกับ GitHub – คิดว่าเป็นแพลตฟอร์มโซเชียลมีเดียสำหรับโปรแกรมเมอร์ ต่างจากการแชร์รูปอาหารเท่านั้นที่นี่เราแชร์โค้ดและสร้างสิ่งที่น่าทึ่งร่วมกัน!
|
|
|
|
|
|
นี่คือสิ่งที่ทำให้ฉันตะลึงมาก: แอปทุกตัวในโทรศัพท์ของคุณ เว็บไซต์ทุกแหล่งที่คุณเยี่ยมชม และเครื่องมือส่วนใหญ่ที่คุณจะได้เรียนรู้ถูกสร้างโดยทีมพัฒนาซอฟต์แวร์ที่ทำงานร่วมกันบนแพลตฟอร์มอย่าง GitHub แอปเพลงที่คุณชื่นชอบ? มีคนอย่างคุณที่ช่วยสร้างมัน เกมที่คุณติดงอมแงม? ใช่แล้ว นั่นก็น่าจะถูกสร้างด้วยความร่วมมือผ่าน GitHub และตอนนี้คุณก็จะได้เรียนรู้วิธีเป็นส่วนหนึ่งของชุมชนน่าอัศจรรย์นี้!
|
|
|
|
|
|
ฉันรู้ว่าสิ่งนี้อาจดูมากในตอนแรก – โอ้ ฉันยังจำได้ตอนที่จ้องหน้าเว็บ GitHub แรกของฉันแล้วคิดว่า “นี่มันหมายความว่าอะไร?” แต่สิ่งที่ควรรู้คือ ผู้พัฒนาทุกคนเริ่มต้นที่จุดเดียวกับที่คุณอยู่ตอนนี้ เมื่อจบบทเรียนนี้ คุณจะมีเก็บข้อมูล GitHub ของตัวเอง (คิดว่ามันเป็นเหมือนโชว์เคสโปรเจกต์ส่วนตัวของคุณบนคลาวด์) และคุณจะรู้วิธีการบันทึกงาน แชร์กับคนอื่น และแม้แต่มีส่วนร่วมในโปรเจกต์ที่ผู้คนนับล้านใช้งาน
|
|
|
|
|
|
เราจะเดินทางร่วมกันทีละก้าว ไม่มีเร่ง ไม่มีแรงกดดัน – แค่คุณ ฉัน และเครื่องมือเจ๋ง ๆ ที่กำลังจะเป็นเพื่อนใหม่ของคุณ!
|
|
|
|
|
|

|
|
|
> Sketchnote by [Tomomi Imura](https://twitter.com/girlie_mac)
|
|
|
|
|
|
```mermaid
|
|
|
journey
|
|
|
title การผจญภัย GitHub ของคุณวันนี้
|
|
|
section การตั้งค่า
|
|
|
ติดตั้ง Git: 4: You
|
|
|
สร้างบัญชี: 5: You
|
|
|
ที่เก็บแรก: 5: You
|
|
|
section เรียนรู้ Git
|
|
|
การเปลี่ยนแปลงในเครื่อง: 4: You
|
|
|
การคอมมิตและการพุช: 5: You
|
|
|
การสร้างสาขา: 4: You
|
|
|
section การร่วมมือ
|
|
|
การโฟรกโปรเจกต์: 4: You
|
|
|
การร้องขอการดึง: 5: You
|
|
|
โอเพ่นซอร์ส: 5: You
|
|
|
```
|
|
|
## Pre-Lecture Quiz
|
|
|
[Pre-lecture quiz](https://ff-quizzes.netlify.app)
|
|
|
|
|
|
## Introduction
|
|
|
|
|
|
ก่อนที่เราจะเข้าสู่สิ่งที่น่าตื่นเต้นจริงๆ มาจัดเตรียมคอมพิวเตอร์ของคุณสำหรับเวทมนตร์ GitHub กัน! คิดว่านี่เหมือนกับการจัดเตรียมอุปกรณ์ศิลปะก่อนสร้างผลงานชิ้นเอก – มีเครื่องมือที่เหมาะสมพร้อมทำให้ทุกอย่างราบรื่นและสนุกขึ้นมาก
|
|
|
|
|
|
ฉันจะพาคุณผ่านทุกขั้นตอนการติดตั้งด้วยตนเอง และสัญญาว่าไม่ได้น่ากลัวอย่างที่ดูในตอนแรก หากบางอย่างยังไม่เข้าใจทันที นั่นเป็นเรื่องปกติมาก! ฉันเคยตั้งค่าสภาพแวดล้อมพัฒนาเป็นครั้งแรกและรู้สึกเหมือนพยายามอ่านอักษรรูปภาพโบราณ ทุกผู้พัฒนาต่างก็เคยอยู่จุดที่คุณกำลังยืนสงสัยว่าทำถูกไหม แอบกระซิบว่า ถ้าคุณกำลังเรียนอยู่แบบนี้ แสดงว่าคุณทำได้ถูกต้องแล้ว! 🌟
|
|
|
|
|
|
ในบทเรียนนี้เราจะพูดถึง:
|
|
|
|
|
|
- การติดตามงานที่คุณทำบนเครื่องคุณ
|
|
|
- การทำงานร่วมกันในโปรเจกต์กับคนอื่น
|
|
|
- วิธีการมีส่วนร่วมในซอฟต์แวร์โอเพนซอร์ส
|
|
|
|
|
|
### Prerequisites
|
|
|
|
|
|
มาจัดเตรียมคอมพิวเตอร์ของคุณสำหรับเวทมนตร์ GitHub กัน! ไม่ต้องกังวล – การติดตั้งนี้ทำแค่ครั้งเดียว จากนั้นคุณจะพร้อมสำหรับการเดินทางในการเขียนโค้ดของคุณตลอดไป
|
|
|
|
|
|
เอาล่ะ เรามาเริ่มจากฐานราก! อันดับแรกเราต้องตรวจสอบว่ามี Git อยู่ในเครื่องของคุณแล้วหรือยัง Git คือเหมือนผู้ช่วยอัจฉริยะที่จำการเปลี่ยนแปลงทุกอย่างที่คุณทำกับโค้ดได้ – ดีกว่าการกด Ctrl+S รัวๆ ทุกสองวินาที (เราทุกคนเคยเป็นแบบนั้น!)
|
|
|
|
|
|
ลองดูว่า Git ติดตั้งแล้วหรือยัง โดยพิมพ์คำสั่งเวทมนตร์นี้ในเทอร์มินัลของคุณ:
|
|
|
`git --version`
|
|
|
|
|
|
ถ้ายังไม่มี Git ไม่ต้องกลัว! แค่ไปที่ [download Git](https://git-scm.com/downloads) แล้วดาวน์โหลด เมื่อคุณติดตั้งเสร็จ เราต้องแนะนำตัว Git ให้รู้จักคุณอย่างถูกต้อง:
|
|
|
|
|
|
> 💡 **ตั้งค่าครั้งแรก**: คำสั่งเหล่านี้จะบอก Git ว่าคุณเป็นใคร ข้อมูลนี้จะถูกแนบกับทุกคอมมิตที่คุณทำ ดังนั้นเลือกชื่อและอีเมลที่คุณมั่นใจว่าอยากแชร์สู่สาธารณะ
|
|
|
|
|
|
```bash
|
|
|
git config --global user.name "your-name"
|
|
|
git config --global user.email "your-email"
|
|
|
```
|
|
|
|
|
|
ถ้าต้องการเช็คว่า Git ถูกตั้งค่าแล้วหรือไม่ให้พิมพ์:
|
|
|
```bash
|
|
|
git config --list
|
|
|
```
|
|
|
|
|
|
นอกจากนี้คุณยังต้องมีบัญชี GitHub, ตัวแก้ไขโค้ด (เช่น Visual Studio Code) และเปิดเทอร์มินัล (หรือ: command prompt)
|
|
|
|
|
|
ไปที่ [github.com](https://github.com/) แล้วสร้างบัญชีใหม่ถ้ายังไม่มี หรือเข้าสู่ระบบและกรอกข้อมูลโปรไฟล์ของคุณ
|
|
|
|
|
|
💡 **เคล็ดลับสมัยใหม่**: ลองตั้งค่า [SSH keys](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) หรือใช้ [GitHub CLI](https://cli.github.com/) สำหรับการตรวจสอบสิทธิ์ที่ง่ายขึ้นโดยไม่ต้องใช้รหัสผ่าน
|
|
|
|
|
|
✅ GitHub ไม่ใช่ที่เก็บโค้ดเดียวในโลก ยังมีที่อื่น แต่ GitHub เป็นที่รู้จักดีที่สุด
|
|
|
|
|
|
### Preparation
|
|
|
|
|
|
คุณจะต้องมีโฟลเดอร์ที่มีโปรเจกต์โค้ดบนเครื่องของคุณ (แล็ปท็อปหรือพีซี) และที่เก็บสาธารณะ (public repository) บน GitHub ซึ่งจะใช้เป็นตัวอย่างวิธีมีส่วนร่วมในโปรเจกต์ของคนอื่น
|
|
|
|
|
|
### Keeping Your Code Safe
|
|
|
|
|
|
มาคุยเรื่องความปลอดภัยกันสักครู่ – ไม่ต้องกลัว เราจะไม่ทำให้คุณกลัว! คิดว่าการปฏิบัติด้านความปลอดภัยเช่นเดียวกับการล็อกรถหรือบ้านของคุณ เป็นนิสัยง่ายๆ ที่กลายเป็นธรรมชาติและช่วยปกป้องผลงานที่คุณตั้งใจทำ
|
|
|
|
|
|
เราจะแสดงวิธีทำงานกับ GitHub แบบทันสมัยและปลอดภัยตั้งแต่เริ่มต้น เพื่อให้คุณพัฒนานิสัยที่ดีซึ่งจะช่วยคุณตลอดอาชีพเขียนโค้ด
|
|
|
|
|
|
เมื่อทำงานกับ GitHub สิ่งสำคัญคือต้องทำตามแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุด:
|
|
|
|
|
|
| ด้านความปลอดภัย | แนวปฏิบัติที่ดีที่สุด | ทำไมถึงสำคัญ |
|
|
|
|---------------|---------------|----------------|
|
|
|
| **การตรวจสอบสิทธิ์** | ใช้ SSH keys หรือ Personal Access Tokens | รหัสผ่านปลอดภัยน้อยกว่าและกำลังถูกเลิกใช้ |
|
|
|
| **การตรวจสอบสองปัจจัย** | เปิดใช้ 2FA บัญชี GitHub ของคุณ | เพิ่มชั้นป้องกันบัญชีอีกชั้น |
|
|
|
| **ความปลอดภัยของที่เก็บข้อมูล** | หลีกเลี่ยงการคอมมิตข้อมูลสำคัญ | รหัส API และรหัสผ่านไม่ควรอยู่ในที่เก็บสาธารณะ |
|
|
|
| **การจัดการการพึ่งพิง** | เปิดใช้ Dependabot สำหรับอัปเดต | ช่วยให้ dependencies ปลอดภัยและทันสมัย |
|
|
|
|
|
|
> ⚠️ **คำเตือนความปลอดภัยที่สำคัญ**: หลีกเลี่ยงการคอมมิตกุญแจ API, รหัสผ่าน หรือข้อมูลลับอื่นๆ ลงในที่เก็บใด ๆ ใช้ตัวแปรสภาพแวดล้อม และไฟล์ `.gitignore` เพื่อปกป้องข้อมูลสำคัญ
|
|
|
|
|
|
**การตั้งค่าการตรวจสอบสิทธิ์สมัยใหม่:**
|
|
|
|
|
|
```bash
|
|
|
# สร้างกุญแจ SSH (อัลกอริทึม ed25519 รุ่นใหม่)
|
|
|
ssh-keygen -t ed25519 -C "your_email@example.com"
|
|
|
|
|
|
# ตั้งค่า Git ให้ใช้ SSH
|
|
|
git remote set-url origin git@github.com:username/repository.git
|
|
|
```
|
|
|
|
|
|
> 💡 **เคล็ดลับมือโปร**: SSH keys ช่วยให้ไม่ต้องป้อนรหัสผ่านซ้ำ ๆ และปลอดภัยกว่าวิธีตรวจสอบสิทธิ์แบบเก่า
|
|
|
|
|
|
---
|
|
|
|
|
|
## Managing Your Code Like a Pro
|
|
|
|
|
|
เอาล่ะ ที่นี่คือจุดที่น่าตื่นเต้นสุด ๆ! 🎉 เรากำลังจะเรียนรู้วิธีติดตามและจัดการโค้ดของคุณเหมือนมืออาชีพ และจริงๆ แล้วนี่เป็นหนึ่งในสิ่งที่ฉันชอบสอนที่สุดเพราะมันเปลี่ยนเกมได้เลย
|
|
|
|
|
|
ลองจินตนาการว่า คุณกำลังเขียนเรื่องราวที่น่าทึ่ง และอยากเก็บทุกฉบับร่าง ทุกการแก้ไขเจ๋งๆ ทุกเหตุการณ์ “ว้าว นี่มันสุดยอด!” ตลอดทาง นั่นแหละคือสิ่งที่ Git ทำให้โค้ดของคุณ! มันเหมือนสมุดบันทึกเดินทางข้ามเวลาที่จำทุกอย่าง – ทุกการพิมพ์ ทุกการเปลี่ยนแปลง ทุก “โอ๊ะ ทำพังหมดเลย” ที่คุณสามารถย้อนกลับได้ทันที
|
|
|
|
|
|
ขอบอกตามตรงว่า ในตอนแรกอาจรู้สึกสับสน พอเริ่มต้นฉันเคยคิดว่า “ทำไมฉันไม่แค่บันทึกไฟล์เหมือนปกติ?” แต่เชื่อฉันนะ เมื่อ Git คลิกในหัวคุณ (และมันจะคลิก!) คุณจะมีโมเมนต์ที่คิดว่า “ฉันเคยโค้ดโดยไม่มีสิ่งนี้ได้ยังไง?” มันเหมือนค้นพบว่าคุณบินได้ ทั้งที่เดินเท้ามาทั้งชีวิต!
|
|
|
|
|
|
สมมติว่าคุณมีโฟลเดอร์โค้ดบนเครื่อง และอยากเริ่มติดตามความก้าวหน้าด้วย git – ระบบควบคุมเวอร์ชัน บางคนเปรียบเหมือนเขียนจดหมายรักถึงตัวเองในอนาคต การอ่านข้อความคอมมิตวันหลังจะช่วยให้คุณจำได้ว่าทำไมตัดสินใจอย่างนั้น หรือ “ย้อนกลับ” การเปลี่ยนแปลงได้ – เมื่อคุณเขียนข้อความคอมมิตดีๆ
|
|
|
|
|
|
```mermaid
|
|
|
flowchart TD
|
|
|
A[📁 ไฟล์โครงการของคุณ] --> B{นี่คือ Git Repository หรือไม่?}
|
|
|
B -->|ไม่| C[git init]
|
|
|
B -->|ใช่| D[ทำการเปลี่ยนแปลง]
|
|
|
C --> D
|
|
|
D --> E[git add .]
|
|
|
E --> F["git commit -m 'ข้อความ'"]
|
|
|
F --> G[git push]
|
|
|
G --> H[🌟 โค้ดบน GitHub!]
|
|
|
|
|
|
H --> I{ต้องการร่วมมือหรือไม่?}
|
|
|
I -->|ใช่| J[Fork & Clone]
|
|
|
I -->|ไม่| D
|
|
|
J --> K[สร้างสาขา]
|
|
|
K --> L[ทำการเปลี่ยนแปลง]
|
|
|
L --> M[Pull Request]
|
|
|
M --> N[🎉 กำลังร่วมมือ!]
|
|
|
|
|
|
style A fill:#fff59d
|
|
|
style H fill:#c8e6c9
|
|
|
style N fill:#ff4081,color:#fff
|
|
|
```
|
|
|
### Task: สร้าง Repository แรกของคุณ!
|
|
|
|
|
|
> 🎯 **ภารกิจของคุณ (และฉันตื่นเต้นมาก!)**: เราจะสร้าง repository แรกบน GitHub ของคุณด้วยกัน! เมื่อเราทำเสร็จ คุณจะมีมุมเล็กๆ บนอินเทอร์เน็ตเพื่อเก็บโค้ดของคุณ และได้ทำ “commit” แรก (ซึ่งแปลว่าการบันทึกงานอย่างฉลาด)
|
|
|
>
|
|
|
> นี่เป็นช่วงเวลาสุดพิเศษ – คุณกำลังจะเข้าร่วมชุมชนนักพัฒนาทั่วโลกอย่างเป็นทางการ! ฉันยังจำความรู้สึกตื่นเต้นตอนสร้าง repo แรกได้ว่า “ว้าว ฉันทำได้จริงๆ!”
|
|
|
|
|
|
เราจะเดินผ่านการผจญภัยครั้งนี้ไปด้วยกันทีละขั้นตอน ใช้เวลาแต่ละส่วนอย่างเต็มที่ – ไม่มีการแข่งขัน และฉันสัญญาทุกขั้นตอนจะเข้าใจง่าย จำไว้ว่านักพัฒนาที่คุณชื่นชอบก็เคยนั่งตรงนี้ เตรียมสร้าง repository แรกของเขา มันเจ๋งมากใช่ไหม?
|
|
|
|
|
|
> ดูวิดีโอ
|
|
|
>
|
|
|
> [](https://www.youtube.com/watch?v=9R31OUPpxU4)
|
|
|
|
|
|
**มาทำสิ่งนี้ด้วยกัน:**
|
|
|
|
|
|
1. **สร้าง repository ของคุณบน GitHub** ไปที่ GitHub.com แล้วหาปุ่มสีเขียวสดใส **New** (หรือเครื่องหมาย **+** ที่มุมบนขวา) คลิกเลือก **New repository**
|
|
|
|
|
|
ต่อไปนี้คือสิ่งที่ต้องทำ:
|
|
|
1. ตั้งชื่อ repository ให้มีความหมายสำหรับคุณ!
|
|
|
1. เพิ่มคำอธิบายถ้าต้องการ (ช่วยให้คนอื่นเข้าใจว่าโปรเจกต์ของคุณคืออะไร)
|
|
|
1. เลือกว่าจะให้เป็นสาธารณะ (ทุกคนเห็นได้) หรือส่วนตัว (เฉพาะคุณ)
|
|
|
1. ฉันแนะนำให้ติ๊กเลือกกล่องเพื่อเพิ่มไฟล์ README – เหมือนหน้าปกโปรเจกต์ของคุณ
|
|
|
1. คลิก **Create repository** และฉลองได้เลย – คุณเพิ่งสร้าง repo แรกสำเร็จ! 🎉
|
|
|
|
|
|
2. **ไปที่โฟลเดอร์โปรเจกต์ของคุณ** ตอนนี้มาเปิดเทอร์มินัล (ไม่ต้องกลัว มันไม่น่ากลัวอย่างที่คิด!) เราต้องบอกคอมพิวเตอร์ว่าตำแหน่งของไฟล์โปรเจกต์อยู่ที่ไหน พิมพ์คำสั่งนี้:
|
|
|
|
|
|
```bash
|
|
|
cd [name of your folder]
|
|
|
```
|
|
|
|
|
|
**สิ่งที่เราทำตรงนี้:**
|
|
|
- พูดกับคอมพิวเตอร์ว่า “พาไปที่โฟลเดอร์โปรเจกต์ของฉัน”
|
|
|
- เหมือนเปิดโฟลเดอร์บนเดสก์ท็อป แต่ใช้คำสั่งข้อความแทน
|
|
|
- แทนที่ `[name of your folder]` ด้วยชื่อโฟลเดอร์โปรเจกต์จริงของคุณ
|
|
|
|
|
|
3. **เปลี่ยนโฟลเดอร์ของคุณให้เป็น Git repository** นี่คือจุดเกิดเวทมนตร์! พิมพ์:
|
|
|
|
|
|
```bash
|
|
|
git init
|
|
|
```
|
|
|
|
|
|
**นี่คือสิ่งที่เพิ่งเกิดขึ้น (เจ๋งมาก):**
|
|
|
- Git สร้างโฟลเดอร์ `.git` ที่ถูกซ่อนอยู่ในโปรเจกต์ของคุณ – คุณจะไม่เห็น แต่มีอยู่จริง!
|
|
|
- โฟลเดอร์ปกติของคุณตอนนี้กลายเป็น “repository” ที่สามารถติดตามทุกการเปลี่ยนแปลงได้
|
|
|
- คิดว่ามันเหมือนให้พลังวิเศษกับโฟลเดอร์ของคุณที่จะจำได้ทุกอย่าง
|
|
|
|
|
|
4. **ตรวจสอบสถานะโปรเจกต์** มาดูว่า Git กำลังบอกอะไรเกี่ยวกับโปรเจกต์ของคุณตอนนี้:
|
|
|
|
|
|
```bash
|
|
|
git status
|
|
|
```
|
|
|
|
|
|
**ทำความเข้าใจสิ่งที่ Git บอก:**
|
|
|
|
|
|
คุณอาจเห็นอะไรที่คล้ายแบบนี้:
|
|
|
|
|
|
```output
|
|
|
Changes not staged for commit:
|
|
|
(use "git add <file>..." to update what will be committed)
|
|
|
(use "git restore <file>..." to discard changes in working directory)
|
|
|
|
|
|
modified: file.txt
|
|
|
modified: file2.txt
|
|
|
```
|
|
|
|
|
|
**ไม่ต้องตกใจ! นี่คือความหมายของมัน:**
|
|
|
- ไฟล์ที่เป็น **สีแดง** คือไฟล์ที่มีการเปลี่ยนแปลงแต่ยังไม่พร้อมบันทึก
|
|
|
- ไฟล์ที่เป็น **สีเขียว** (เมื่อเห็น) คือไฟล์ที่พร้อมบันทึกแล้ว
|
|
|
- Git กำลังช่วยบอกคุณว่า คุณสามารถทำอะไรต่อไปได้บ้าง
|
|
|
|
|
|
> 💡 **เคล็ดลับมือโปร**: คำสั่ง `git status` เป็นเพื่อนที่ดีที่สุดของคุณ! ใช้มันเมื่อไหงสงสัยว่ากำลังเกิดอะไรขึ้น มันเหมือนถาม Git ว่า “เฮ้ สถานการณ์ตอนนี้เป็นไง?”
|
|
|
|
|
|
5. **เตรียมไฟล์ของคุณสำหรับการบันทึก** (เรียกว่า “staging”):
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
```
|
|
|
|
|
|
**สิ่งที่เราทำไป:**
|
|
|
- บอก Git ว่า “เอาไฟล์ทั้งหมดของฉันไปรวมในบันทึกถัดไป”
|
|
|
- จุด ( `.` ) คือเรียกทุกอย่างในโฟลเดอร์นี้
|
|
|
- ตอนนี้ไฟล์ของคุณถูก “จัดเตรียม” และพร้อมสำหรับขั้นตอนต่อไป
|
|
|
|
|
|
**อยากเลือกไฟล์เฉพาะเจาะจง?** คุณสามารถเพิ่มแค่ไฟล์บางไฟล์ได้:
|
|
|
|
|
|
```bash
|
|
|
git add [file or folder name]
|
|
|
```
|
|
|
|
|
|
**ทำไมถึงอยากทำแบบนี้?**
|
|
|
- บางครั้งอยากบันทึกการเปลี่ยนแปลงที่เกี่ยวข้องกันเท่านั้น
|
|
|
- ช่วยจัดระเบียบงานเป็นส่วนๆ ได้ง่ายขึ้น
|
|
|
- ทำให้เข้าใจได้ง่ายว่าอะไรเปลี่ยนเมื่อไหร่
|
|
|
|
|
|
**เปลี่ยนใจไหม?** ไม่เป็นไร! คุณสามารถยกเลิกการเตรียมไฟล์แบบนี้:
|
|
|
|
|
|
```bash
|
|
|
# ยกเลิกการตั้งค่าสถานะทั้งหมด
|
|
|
git reset
|
|
|
|
|
|
# ยกเลิกการตั้งค่าสถานะไฟล์เดียวเท่านั้น
|
|
|
git reset [file name]
|
|
|
```
|
|
|
|
|
|
ไม่ต้องกังวล – วิธีนี้ไม่ลบงานคุณนะ แค่เอาไฟล์ออกจากส่วนที่ “พร้อมเก็บ”
|
|
|
|
|
|
6. **บันทึกงานของคุณอย่างถาวร** (ทำ commit แรก!):
|
|
|
|
|
|
```bash
|
|
|
git commit -m "first commit"
|
|
|
```
|
|
|
|
|
|
**🎉 ยินดีด้วย! คุณเพิ่งทำ commit แรก!**
|
|
|
|
|
|
**นี่คือสิ่งที่เกิดขึ้น:**
|
|
|
- Git ถ่าย “ภาพนิ่ง” ของไฟล์ทั้งหมดที่จัดเตรียมไว้ ณ จุดนี้
|
|
|
- ข้อความ commit “first commit” อธิบายว่า จุดเก็บนี้หมายถึงอะไร
|
|
|
- Git ให้ ID เฉพาะกับภาพนิ่งนี้ เพื่อให้คุณหาได้เสมอภายหลัง
|
|
|
- คุณเริ่มติดตามประวัติของโปรเจกต์อย่างเป็นทางการ!
|
|
|
|
|
|
> 💡 **ข้อความ commit ในอนาคต**: สำหรับ commit ต่อๆ ไป ให้พยายามเขียนให้บรรยายชัดเจนกว่านี้ แทนที่จะเขียนว่า “updated stuff” ลองเป็น “Add contact form to homepage” หรือ “Fix navigation menu bug” ตัวคุณในอนาคตจะขอบคุณ!
|
|
|
|
|
|
7. **เชื่อมโปรเจกต์ในเครื่องกับ GitHub** ตอนนี้โปรเจกต์อยู่แค่บนคอมพิวเตอร์คุณเอง มาเชื่อมกับ repository บน GitHub เพื่อแชร์กับโลกกัน!
|
|
|
|
|
|
ก่อนอื่น เข้าไปที่หน้า repository บน GitHub ของคุณแล้วคัดลอก URL จากนั้นกลับมาที่นี่และพิมพ์:
|
|
|
|
|
|
```bash
|
|
|
git remote add origin https://github.com/username/repository_name.git
|
|
|
```
|
|
|
|
|
|
(แทนที่ URL นี้ด้วย URL จริงของ repository คุณ!)
|
|
|
|
|
|
**สิ่งที่เราทำไป:**
|
|
|
- เราได้สร้างการเชื่อมต่อระหว่างโปรเจคในเครื่องของคุณกับรีโพซิทอรี GitHub ของคุณแล้ว
|
|
|
- "Origin" เป็นเพียงชื่อเล่นสำหรับรีโพซิทอรี GitHub ของคุณ—เหมือนกับการเพิ่มรายชื่อผู้ติดต่อในโทรศัพท์ของคุณ
|
|
|
- ตอนนี้ Git ในเครื่องของคุณรู้แล้วว่าจะส่งโค้ดของคุณไปที่ไหนเมื่อคุณพร้อมจะแชร์
|
|
|
|
|
|
💡 **วิธีที่ง่ายกว่า**: ถ้าคุณติดตั้ง GitHub CLI แล้ว คุณสามารถทำสิ่งนี้ได้ในคำสั่งเดียว:
|
|
|
```bash
|
|
|
gh repo create my-repo --public --push --source=.
|
|
|
```
|
|
|
|
|
|
8. **ส่งโค้ดของคุณไปที่ GitHub** (ช่วงเวลาสำคัญ!):
|
|
|
|
|
|
```bash
|
|
|
git push -u origin main
|
|
|
```
|
|
|
|
|
|
**🚀 นี่แหละ! คุณกำลังอัปโหลดโค้ดของคุณไปยัง GitHub!**
|
|
|
|
|
|
**สิ่งที่กำลังเกิดขึ้น:**
|
|
|
- คอมมิตของคุณกำลังเคลื่อนที่จากคอมพิวเตอร์ของคุณไปยัง GitHub
|
|
|
- ธง `-u` ตั้งค่าการเชื่อมต่อถาวร เพื่อให้การ push ในอนาคตง่ายขึ้น
|
|
|
- "main" คือชื่อของสาขาหลักของคุณ (เหมือนกับโฟลเดอร์หลัก)
|
|
|
- หลังจากนี้ คุณแค่พิมพ์ `git push` สำหรับการอัปโหลดในอนาคตได้เลย!
|
|
|
|
|
|
💡 **หมายเหตุด่วน**: ถ้าสาขาของคุณใช้ชื่ออื่น (เช่น "master") ให้ใช้ชื่อนั้นแทน คุณสามารถตรวจสอบได้ด้วย `git branch --show-current`
|
|
|
|
|
|
9. **จังหวะการเขียนโค้ดใหม่ของคุณในแต่ละวัน** (ตรงนี้สนุกมาก!):
|
|
|
|
|
|
จากนี้ไป เมื่อใดก็ตามที่คุณทำการเปลี่ยนแปลงโปรเจค คุณก็มีการเต้นสามขั้นตอนง่ายๆ นี้:
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
git commit -m "describe what you changed"
|
|
|
git push
|
|
|
```
|
|
|
|
|
|
**นี่คือจังหวะการเขียนโค้ดของคุณ:**
|
|
|
- ทำการเปลี่ยนแปลงโค้ดสุดเจ๋งของคุณ ✨
|
|
|
- วางไว้ในสเตจด้วย `git add` ("เฮ้ Git จับตาดูการเปลี่ยนแปลงพวกนี้!")
|
|
|
- บันทึกด้วย `git commit` พร้อมข้อความอธิบาย (คุณในอนาคตจะขอบคุณ!)
|
|
|
- แชร์กับโลกโดยใช้ `git push` 🚀
|
|
|
- ทำซ้ำ – จริงจังนะ นี่จะกลายเป็นธรรมชาติอย่างกับการหายใจ!
|
|
|
|
|
|
ฉันชอบโฟลว์นี้เพราะมันเหมือนกับมีจุดเซฟหลายจุดในวิดีโอเกม ทำการเปลี่ยนแปลงที่ชอบ? คอมมิตเลย! อยากลองอะไรเสี่ยงๆ? ไม่มีปัญหา – คุณสามารถย้อนกลับไปยังคอมมิตล่าสุดได้ถ้าเกิดสถานการณ์ผิดพลาด!
|
|
|
|
|
|
> 💡 **เคล็ดลับ**: คุณอาจอยากใช้ไฟล์ `.gitignore` เพื่อป้องกันไม่ให้ไฟล์ที่คุณไม่อยากติดตามแสดงบน GitHub - เช่นไฟล์โน้ตที่เก็บไว้ในโฟลเดอร์เดียวกัน แต่ไม่ควรอยู่ในรีโพซิทอรีสาธารณะ คุณสามารถหาแม่แบบไฟล์ `.gitignore` ได้ที่ [.gitignore templates](https://github.com/github/gitignore) หรือสร้างโดยใช้ [gitignore.io](https://www.toptal.com/developers/gitignore)
|
|
|
|
|
|
### 🧠 **เช็คอินรีโพซิทอรีแรก: รู้สึกอย่างไรบ้าง?**
|
|
|
|
|
|
**หยุดสักครู่เพื่อฉลองและสะท้อนความคิด:**
|
|
|
- รู้สึกอย่างไรเมื่อเห็นโค้ดของคุณโผล่บน GitHub เป็นครั้งแรก?
|
|
|
- ขั้นตอนไหนที่คุณรู้สึกสับสนที่สุด และขั้นตอนไหนที่คุณคิดว่าง่ายจริงๆ?
|
|
|
- คุณสามารถอธิบายความแตกต่างระหว่าง `git add`, `git commit`, และ `git push` ด้วยคำพูดของคุณเองได้ไหม?
|
|
|
|
|
|
```mermaid
|
|
|
stateDiagram-v2
|
|
|
[*] --> LocalFiles: สร้างโปรเจกต์
|
|
|
LocalFiles --> Staged: git add .
|
|
|
Staged --> Committed: git commit
|
|
|
Committed --> GitHub: git push
|
|
|
GitHub --> [*]: สำเร็จ! 🎉
|
|
|
|
|
|
note right of Staged
|
|
|
ไฟล์พร้อมสำหรับการบันทึก
|
|
|
end note
|
|
|
|
|
|
note right of Committed
|
|
|
สแน็ปช็อตถูกสร้างแล้ว
|
|
|
end note
|
|
|
```
|
|
|
> **จำไว้**: แม้แต่ผู้พัฒนาที่มีประสบการณ์ก็ยังลืมคำสั่งบางอย่างได้ การทำให้โฟลว์นี้กลายเป็นความเคยชินต้องการการฝึกฝน—คุณทำได้ดีมาก!
|
|
|
|
|
|
#### โฟลว์การทำงาน Git แบบสมัยใหม่
|
|
|
|
|
|
ลองใช้แนวทางปฏิบัติเหล่านี้:
|
|
|
|
|
|
- **Conventional Commits**: ใช้รูปแบบข้อความคอมมิตมาตรฐาน เช่น `feat:`, `fix:`, `docs:` เป็นต้น เรียนรู้เพิ่มเติมได้ที่ [conventionalcommits.org](https://www.conventionalcommits.org/)
|
|
|
- **Atomic commits**: ให้แต่ละคอมมิตแทนการเปลี่ยนแปลงเชิงตรรกะเพียงอย่างเดียว
|
|
|
- **Frequent commits**: คอมมิตบ่อยๆ พร้อมข้อความอธิบาย ไม่ใช่คอมมิตใหญ่ๆ ที่นานๆ ครั้ง
|
|
|
|
|
|
#### ข้อความคอมมิต
|
|
|
|
|
|
หัวข้อคอมมิตที่ดีควรเติมประโยคต่อไปนี้:
|
|
|
ถ้าใช้คอมมิตนี้ จะทำให้ <หัวข้อของคุณที่นี่>
|
|
|
|
|
|
สำหรับหัวข้อ ใช้คำสั่งเป็นรูปแบบกริยาในปัจจุบัน: "change" ไม่ใช่ "changed" หรือ "changes"
|
|
|
เหมือนกับหัวข้อ ในเนื้อความ (ถ้ามี) ก็ใช้กริยาในรูปแบบปัจจุบันเช่นกัน บอดี้ควรรวมเหตุผลของการเปลี่ยนแปลงและเปรียบเทียบกับพฤติกรรมก่อนหน้า คุณกำลังอธิบายว่า `ทำไม` ไม่ใช่ `อย่างไร`
|
|
|
|
|
|
✅ ใช้เวลาสักพักท่อง GitHub ดู คุณเจอข้อความคอมมิตดีๆ บ้างไหม? เจอข้อความคอมมิตสั้นมากๆ บ้างไหม? คุณคิดว่าข้อมูลไหนสำคัญที่สุดและเป็นประโยชน์ที่สุดที่ควรใส่ในข้อความคอมมิต?
|
|
|
|
|
|
## การทำงานร่วมกับผู้อื่น (ส่วนที่สนุก!)
|
|
|
|
|
|
เตรียมตัวให้พร้อมเพราะตรงนี้แหละที่ GitHub จะกลายเป็นเวทมนตร์อย่างแท้จริง! 🪄 คุณชำนาญการจัดการโค้ดของตัวเองแล้ว แต่ตอนนี้เราจะดำดิ่งไปยังส่วนที่ฉันชอบที่สุด—การร่วมมือกับคนเจ๋งๆ จากทั่วทุกมุมโลก
|
|
|
|
|
|
ลองนึกภาพดูสิ: คุณตื่นขึ้นมาในวันพรุ่งนี้แล้วเห็นว่ามีใครบางคนในโตเกียวปรับปรุงโค้ดของคุณในขณะที่คุณนอนหลับ จากนั้นใครบางคนในเบอร์ลินแก้บั๊กที่คุณติดค้างไว้ ช่วงบ่าย นักพัฒนาในเซาเปาโลเพิ่มฟีเจอร์ที่คุณไม่เคยคิดถึง นั่นไม่ใช่เรื่องนิยายวิทยาศาสตร์—นั่นคือวันธรรมดาในจักรวาล GitHub!
|
|
|
|
|
|
สิ่งที่ทำให้ฉันตื่นเต้นจริงๆ คือทักษะการร่วมมือนี้? นี่คือโฟลว์การทำงานเดียวกันกับที่ทีมงาน Google, Microsoft และสตาร์ทอัพที่คุณชื่นชอบใช้ทุกวัน คุณไม่ใช่แค่เรียนรู้เครื่องมือเท่ๆ แต่คุณกำลังเรียนรู้ภาษาลับที่ทำให้โลกซอฟต์แวร์ทั้งหมดทำงานร่วมกันได้
|
|
|
|
|
|
จริงจังนะ เมื่อคุณได้สัมผัสความตื่นเต้นจากการที่ใครบางคน merge pull request แรกของคุณ คุณจะเข้าใจว่าทำไมนักพัฒนาถึงหลงรักโอเพนซอร์สขนาดนั้น มันเหมือนกับการเป็นส่วนหนึ่งของโปรเจคทีมที่สร้างสรรค์ที่สุดในโลก!
|
|
|
|
|
|
> ดูวิดีโอ
|
|
|
>
|
|
|
> [](https://www.youtube.com/watch?v=bFCM-PC3cu8)
|
|
|
|
|
|
เหตุผลหลักที่ต้องการนำสิ่งต่างๆ ลง GitHub คือเพื่อให้สามารถร่วมงานกับนักพัฒนาคนอื่นได้
|
|
|
|
|
|
```mermaid
|
|
|
flowchart LR
|
|
|
A[🔍 ค้นหาโปรเจกต์] --> B[🍴 แยกที่เก็บ]
|
|
|
B --> C[📥 โคลนไปยังเครื่อง]
|
|
|
C --> D[🌿 สร้างสาขา]
|
|
|
D --> E[✏️ แก้ไข]
|
|
|
E --> F[💾 คอมมิตการเปลี่ยนแปลง]
|
|
|
F --> G[📤 ส่งสาขา]
|
|
|
G --> H[🔄 สร้างคำขอร่วม]
|
|
|
H --> I{ผู้ดูแลตรวจสอบ}
|
|
|
I -->|✅ อนุมัติ| J[🎉 รวม!]
|
|
|
I -->|❓ ขอเปลี่ยนแปลง| K[📝 ปรับปรุง]
|
|
|
K --> F
|
|
|
J --> L[🧹 ทำความสะอาดสาขา]
|
|
|
|
|
|
style A fill:#e3f2fd
|
|
|
style J fill:#e8f5e8
|
|
|
style L fill:#fff3e0
|
|
|
```
|
|
|
ในรีโพซิทอรีของคุณ ให้ไปที่ `Insights > Community` เพื่อตรวจสอบว่าโปรเจคของคุณเปรียบเทียบกับมาตรฐานชุมชนที่แนะนำอย่างไร
|
|
|
|
|
|
อยากทำให้รีโพซิทอรีของคุณดูเป็นมืออาชีพและน่าเชิญชวนไหม? ไปที่รีโพซิทอรีของคุณแล้วคลิกที่ `Insights > Community` ฟีเจอร์เจ๋งๆ นี้จะแสดงให้คุณเห็นว่าโปรเจคของคุณเปรียบเทียบกับสิ่งที่ชุมชน GitHub มองว่าเป็น "แนวทางจัดการรีโพซิทอรีที่ดี" อย่างไร
|
|
|
|
|
|
> 🎯 **ทำให้โปรเจคของคุณโดดเด่น**: รีโพซิทอรีที่จัดระเบียบดีพร้อมเอกสารครบถ้วนเหมือนกับมีหน้าร้านที่สะอาดและเชิญชวน มันบ่งบอกว่าคุณใส่ใจงานของคุณและทำให้คนอื่นอยากจะมีส่วนร่วม!
|
|
|
|
|
|
**นี่คือสิ่งที่ทำให้รีโพซิทอรียอดเยี่ยม:**
|
|
|
|
|
|
| สิ่งที่ต้องเพิ่ม | ทำไมถึงสำคัญ | สิ่งที่ได้สำหรับคุณ |
|
|
|
|-------------|-------------------|---------------------|
|
|
|
| **Description** | ความประทับใจแรกสำคัญ! | คนรู้ทันทีว่าโปรเจคของคุณทำอะไร |
|
|
|
| **README** | หน้าแรกของโปรเจค | เหมือนไกด์นำเที่ยวที่เป็นมิตรสำหรับผู้มาเยือนใหม่ |
|
|
|
| **Contributing Guidelines** | แสดงว่าคุณต้อนรับความช่วยเหลือ | คนรู้ชัดเจนว่าจะช่วยยังไง |
|
|
|
| **Code of Conduct** | สร้างพื้นที่เป็นมิตร | ทุกคนรู้สึกยินดีต้อนรับให้เข้าร่วม |
|
|
|
| **License** | ความชัดเจนทางกฎหมาย | คนอื่นรู้ว่าจะใช้โค้ดคุณยังไง |
|
|
|
| **Security Policy** | แสดงว่าคุณรับผิดชอบ | แสดงให้เห็นถึงการปฏิบัติงานอย่างมืออาชีพ |
|
|
|
|
|
|
> 💡 **เคล็ดลับมือโปร**: GitHub จัดเตรียมแม่แบบไฟล์เหล่านี้ทั้งหมด เมื่อสร้างรีโพซิทอรีใหม่ ให้ติ๊กเลือกเพื่อสร้างไฟล์เหล่านี้โดยอัตโนมัติ
|
|
|
|
|
|
**ฟีเจอร์ GitHub สมัยใหม่ที่ควรสำรวจ:**
|
|
|
|
|
|
🤖 **ระบบอัตโนมัติ & CI/CD:**
|
|
|
- **GitHub Actions** สำหรับการทดสอบและดีพลอยอัตโนมัติ
|
|
|
- **Dependabot** สำหรับการอัปเดต dependencies อัตโนมัติ
|
|
|
|
|
|
💬 **ชุมชน & การจัดการโปรเจค:**
|
|
|
- **GitHub Discussions** สำหรับการสนทนาของชุมชนที่นอกเหนือจากประเด็นปัญหา
|
|
|
- **GitHub Projects** สำหรับการจัดการโปรเจคแบบบอร์ดคัมบัง
|
|
|
- **Branch protection rules** เพื่อบังคับใช้มาตรฐานคุณภาพโค้ด
|
|
|
|
|
|
ทรัพยากรทั้งหมดนี้จะช่วยในการนำสมาชิกทีมใหม่เข้าร่วมทีม และนั่นก็มักเป็นสิ่งที่ผู้ร่วมพัฒนามักจะดูก่อนจะดูโค้ดของคุณ เพื่อหาว่าโปรเจคนี้เหมาะที่จะใช้เวลาของพวกเขาหรือไม่
|
|
|
|
|
|
✅ ไฟล์ README แม้จะต้องใช้เวลาจัดเตรียม แต่เจ้าของโปรเจคหลายคนก็ละเลย คุณสามารถหาไฟล์ตัวอย่างที่อธิบายดีมากๆ ได้ไหม? หมายเหตุ: มี [เครื่องมือช่วยสร้าง README ดีๆ](https://www.makeareadme.com/) ที่คุณอาจอยากลองใช้
|
|
|
|
|
|
### งาน: ผสานโค้ดบางส่วน
|
|
|
|
|
|
เอกสารแนะนำการมีส่วนร่วมช่วยให้คนอื่นร่วมพัฒนาโปรเจคได้ มันอธิบายว่าคุณกำลังมองหาการมีส่วนร่วมประเภทไหนและกระบวนการเป็นอย่างไร ผู้ร่วมงานต้องผ่านขั้นตอนหลายอย่างเพื่อจะร่วมงานในรีโพซิทอรีของคุณบน GitHub:
|
|
|
|
|
|
1. **Fork รีโพซิทอรีของคุณ** คุณอาจอยากให้คนอื่น _fork_ โปรเจคของคุณ Fork หมายถึงการสร้างสำเนาของรีโพซิทอรีของคุณบนโปรไฟล์ GitHub ของพวกเขา
|
|
|
1. **Clone** จากนั้นพวกเขาจะ clone โปรเจคไปยังเครื่องของตน
|
|
|
1. **สร้างสาขา** คุณจะอยากให้พวกเขาสร้าง _branch_ สำหรับงานของตน
|
|
|
1. **เน้นการเปลี่ยนแปลงในพื้นที่เดียว** ขอให้ผู้ร่วมงานโฟกัสไปที่การเปลี่ยนแปลงอย่างใดอย่างหนึ่งครั้งละอย่าง—แบบนี้โอกาสที่คุณจะ _merge_ งานพวกเขาจะสูงขึ้น ลองจินตนาการว่าพวกเขาเขียนแก้บั๊ก, เพิ่มฟีเจอร์ใหม่, และอัปเดตเทสต์หลายอัน—ถ้าคุณอยากหรือสามารถทำได้แค่ 2 ใน 3 หรือ 1 ใน 3 อย่าง คุณจะจัดการยังไง?
|
|
|
|
|
|
✅ ลองจินตนาการสถานการณ์ที่สาขามีความสำคัญมากต่อการเขียนและส่งมอบโค้ดดีๆ คุณคิดถึงกรณีอะไรบ้าง?
|
|
|
|
|
|
> จำไว้ เปลี่ยนแปลงที่คุณอยากเห็นในโลก และสร้างสาขาสำหรับงานของคุณเองด้วย การคอมมิตที่คุณทำจะเป็นในสาขาที่คุณกำลัง “checked out” อยู่ ใช้ `git status` เพื่อตรวจสอบสาขาที่คุณอยู่
|
|
|
|
|
|
มาดูเวิร์กโฟลว์ของผู้ร่วมงานกัน สมมติว่าผู้ร่วมงานได้ _fork_ และ _clone_ รีโพซิทอรีแล้ว ดังนั้นพวกเขามี Git repo พร้อมทำงานบนเครื่องของตัวเอง:
|
|
|
|
|
|
1. **สร้างสาขา** ใช้คำสั่ง `git branch` เพื่อสร้างสาขาที่จะมีการเปลี่ยนแปลงที่ต้องการร่วม:
|
|
|
|
|
|
```bash
|
|
|
git branch [branch-name]
|
|
|
```
|
|
|
|
|
|
> 💡 **วิธีร่วมสมัย**: คุณสามารถสร้างและสลับไปสาขาใหม่ในคำสั่งเดียวกันได้:
|
|
|
```bash
|
|
|
git switch -c [branch-name]
|
|
|
```
|
|
|
|
|
|
1. **สลับไปยังสาขางาน** สลับไปสาขาที่กำหนดและอัปเดตไดเรกทอรีทำงานด้วย `git switch`:
|
|
|
|
|
|
```bash
|
|
|
git switch [branch-name]
|
|
|
```
|
|
|
|
|
|
> 💡 **หมายเหตุสมัยใหม่**: `git switch` คือคำสั่งใหม่แทน `git checkout` เมื่อต้องการเปลี่ยนสาขา เหมาะสำหรับผู้เริ่มต้นเพราะชัดเจนและปลอดภัยกว่า
|
|
|
|
|
|
1. **ทำงาน** ตอนนี้คุณต้องเพิ่มการเปลี่ยนแปลงของคุณ อย่าลืมบอก Git ด้วยคำสั่งเหล่านี้:
|
|
|
|
|
|
```bash
|
|
|
git add .
|
|
|
git commit -m "my changes"
|
|
|
```
|
|
|
|
|
|
> ⚠️ **คุณภาพข้อความคอมมิต**: ให้แน่ใจว่าคุณตั้งชื่อคอมมิตดีๆ เพื่อประโยชน์ของทั้งตัวคุณและผู้ดูแลรีโพซิทอรีที่คุณช่วยงาน ระบุชัดเจนว่าคุณเปลี่ยนอะไร!
|
|
|
|
|
|
1. **รวมงานกับสาขา `main`** เมื่อคุณทำงานเสร็จและต้องการรวมงานเข้ากับสาขา `main` ซึ่งอาจมีการเปลี่ยนแปลงไปแล้วในระหว่างนี้ ให้แน่ใจว่าได้อัปเดตสาขา `main` ให้เป็นเวอร์ชันล่าสุดก่อนด้วยคำสั่งดังนี้:
|
|
|
|
|
|
```bash
|
|
|
git switch main
|
|
|
git pull
|
|
|
```
|
|
|
|
|
|
ตอนนี้คุณต้องมั่นใจว่าไม่มี _conflicts_ เหตุการณ์ที่ Git ไม่สามารถ _combine_ การเปลี่ยนแปลงได้ในสาขาทำงานของคุณ ดังนั้นให้รันคำสั่งเหล่านี้:
|
|
|
|
|
|
```bash
|
|
|
git switch [branch_name]
|
|
|
git merge main
|
|
|
```
|
|
|
|
|
|
คำสั่ง `git merge main` จะนำการเปลี่ยนแปลงทั้งหมดจาก `main` เข้าสู่สาขาของคุณ หวังว่าคุณจะสามารถดำเนินต่อได้ ถ้าไม่ โปรแกรม VS Code จะแจ้งตำแหน่งที่ Git _สับสน_ และคุณก็เพียงแก้ไขไฟล์ที่ได้รับผลกระทบเพื่อระบุว่าส่วนไหนถูกต้องที่สุด
|
|
|
|
|
|
💡 **ทางเลือกร่วมสมัย**: ลองใช้ `git rebase` เพื่อประวัติการเปลี่ยนแปลงที่สะอาดขึ้น:
|
|
|
```bash
|
|
|
git rebase main
|
|
|
```
|
|
|
|
|
|
นี่จะเล่นคอมมิตของคุณซ้ำด้านบนของสาขา main ล่าสุด สร้างประวัติแบบเส้นตรง
|
|
|
|
|
|
1. **ส่งงานของคุณไปยัง GitHub** การส่งงานไป GitHub มีสองส่วน คือการ push สาขาของคุณขึ้นรีโพซิทอรี แล้วเปิด PR, Pull Request
|
|
|
|
|
|
```bash
|
|
|
git push --set-upstream origin [branch-name]
|
|
|
```
|
|
|
|
|
|
คำสั่งด้านบนสร้างสาขาบนรีโพซิทอรีที่คุณ fork มาแล้ว
|
|
|
|
|
|
### 🤝 **เช็คทักษะการทำงานร่วมกัน: พร้อมทำงานกับผู้อื่นหรือยัง?**
|
|
|
|
|
|
**มาดูความรู้สึกของคุณเกี่ยวกับการร่วมมือกัน:**
|
|
|
- คุณเข้าใจแนวคิดเรื่องการ fork และ pull request มากขึ้นไหมตอนนี้?
|
|
|
- มีเรื่องอะไรเกี่ยวกับสาขาที่คุณอยากฝึกฝนเพิ่มไหม?
|
|
|
- คุณรู้สึกสบายใจแค่ไหนกับการร่วมมือในโปรเจคของคนอื่น?
|
|
|
|
|
|
```mermaid
|
|
|
mindmap
|
|
|
root((การทำงานร่วมกันของ Git))
|
|
|
Branching
|
|
|
สาขาคุณสมบัติ
|
|
|
สาขาแก้ไขบั๊ก
|
|
|
งานทดลอง
|
|
|
Pull Requests
|
|
|
การตรวจสอบโค้ด
|
|
|
การอภิปราย
|
|
|
การทดสอบ
|
|
|
Best Practices
|
|
|
ข้อความคอมมิตที่ชัดเจน
|
|
|
การเปลี่ยนแปลงขนาดเล็กและมุ่งเน้น
|
|
|
เอกสารที่ดี
|
|
|
```
|
|
|
> **เพิ่มความมั่นใจ**: นักพัฒนาทุกคนที่คุณชื่นชมนั้น เคยประหม่ากับ pull request แรกของตัวเองมาก่อน ชุมชน GitHub ต้อนรับผู้มาใหม่อย่างอบอุ่นเสมอ!
|
|
|
|
|
|
1. **เปิด PR** ต่อไป คุณต้องการเปิด PR ทำได้โดยไปที่รีโพซิทอรี fork บน GitHub คุณจะเห็นแจ้งให้สร้าง PR ใหม่ คลิกแล้วคุณจะเข้าสู่หน้าแก้ไขหัวข้อข้อความและคำอธิบาย PR ให้เหมาะสม ตอนนี้ผู้ดูแลรีโพซิทอรีที่คุณ fork จะเห็น PR นี้ และ _ขอให้โชคดี_ พวกเขาจะยอมรับและ _merge_ PR ของคุณ คุณจึงกลายเป็นผู้ร่วมพัฒนาแล้ว เย้ :)
|
|
|
|
|
|
💡 **เคล็ดลับสมัยใหม่**: คุณยังสามารถสร้าง PR โดยใช้ GitHub CLI ได้ด้วย:
|
|
|
```bash
|
|
|
gh pr create --title "Your PR title" --body "Description of changes"
|
|
|
```
|
|
|
|
|
|
🔧 **แนวปฏิบัติที่ดีสำหรับ PR:**
|
|
|
- ลิงก์ไปยัง issue ที่เกี่ยวข้องโดยใช้คำสำคัญ เช่น "Fixes #123"
|
|
|
- เพิ่มภาพหน้าจอสำหรับการเปลี่ยนแปลง UI
|
|
|
- ขอรีวิวเวอร์เฉพาะเจาะจง
|
|
|
- ใช้ draft PR สำหรับงานที่ยังดำเนินการ
|
|
|
- ตรวจสอบให้แน่ใจว่าการตรวจสอบ CI ผ่านทั้งหมดก่อนขอรีวิว
|
|
|
1. **ทำความสะอาด** เป็นแนวปฏิบัติที่ดีที่จะ _ทำความสะอาด_ หลังจากที่คุณรวม PR ได้สำเร็จแล้ว คุณต้องการทำความสะอาดทั้งสาขาท้องถิ่นของคุณและสาขาที่คุณผลักไปยัง GitHub ก่อนอื่นให้ลบทิ้งในเครื่องด้วยคำสั่งต่อไปนี้:
|
|
|
|
|
|
```bash
|
|
|
git branch -d [branch-name]
|
|
|
```
|
|
|
|
|
|
ตรวจสอบให้แน่ใจว่าคุณไปที่หน้า GitHub สำหรับรีโปที่ถูก fork ต่อไปและลบสาขารีโมทที่คุณเพิ่งผลักไปยังนั้น
|
|
|
|
|
|
`Pull request` ดูเหมือนเป็นคำที่แปลกเพราะจริง ๆ แล้วคุณต้องการผลักการเปลี่ยนแปลงของคุณไปยังโครงการ แต่ผู้ดูแล (เจ้าของโครงการ) หรือทีมหลักจำเป็นต้องพิจารณาการเปลี่ยนแปลงของคุณก่อนที่จะผสานกับสาขา "main" ของโครงการ ดังนั้นคุณจึงกำลังร้องขอการตัดสินใจเปลี่ยนแปลงจากผู้ดูแล
|
|
|
|
|
|
Pull request คือที่ที่ใช้เปรียบเทียบและอภิปรายความแตกต่างที่แนะนำบนสาขาพร้อมกับการตรวจสอบ ความเห็น การทดสอบแบบบูรณาการ และอื่น ๆ Pull request ที่ดีจะปฏิบัติตามกฎโดยประมาณเดียวกับข้อความ commit คุณสามารถเพิ่มการอ้างอิงปัญหาในตัวติดตามปัญหา เมื่อการทำงานของคุณแก้ไขปัญหานั้น ตัวอย่างเช่น โดยใช้ `#` ตามด้วยหมายเลขของปัญหาของคุณ เช่น `#97`
|
|
|
|
|
|
🤞 ขอให้ทุกการตรวจสอบผ่านและเจ้าของโครงการรวมการเปลี่ยนแปลงของคุณเข้ากับโครงการ 🤞
|
|
|
|
|
|
อัปเดตสาขาทำงานท้องถิ่นปัจจุบันของคุณด้วย commit ใหม่ทั้งหมดจากสาขารีโมทที่สอดคล้องกันบน GitHub:
|
|
|
|
|
|
`git pull`
|
|
|
|
|
|
## การมีส่วนร่วมกับ Open Source (โอกาสของคุณที่จะสร้างผลกระทบ!)
|
|
|
|
|
|
คุณพร้อมสำหรับสิ่งที่จะทำให้คุณตะลึงมั้ย? 🤯 มาพูดถึงการมีส่วนร่วมกับโครงการโอเพนซอร์สกัน – ฉันรู้สึกตื่นเต้นมากที่จะได้แบ่งปันเรื่องนี้กับคุณ!
|
|
|
|
|
|
นี่คือโอกาสของคุณที่จะเป็นส่วนหนึ่งของสิ่งที่ยอดเยี่ยมจริง ๆ ลองจินตนาการถึงการปรับปรุงเครื่องมือที่นักพัฒนากว่าล้านคนใช้ทุกวัน หรือแก้ไขบั๊กในแอปที่เพื่อนของคุณชื่นชอบ นั่นไม่ใช่แค่ความฝัน – นั่นคือสิ่งที่การมีส่วนร่วมกับโอเพนซอร์สหมายถึง!
|
|
|
|
|
|
นี่คือสิ่งที่ทำให้ฉันตื่นเต้นทุกครั้งที่คิดถึง: ทุกเครื่องมือที่คุณเรียนรู้ – ตัวแก้ไขโค้ดของคุณ เฟรมเวิร์กที่เราจะสำรวจ และแม้แต่อินเทอร์เฟซเบราว์เซอร์ที่คุณใช้อ่านนี้ – เริ่มต้นจากใครซักคนที่เหมือนคุณ ที่สร้างการมีส่วนร่วมครั้งแรกของเขา นักพัฒนาผู้เก่งกาจที่สร้างส่วนขยาย VS Code ที่คุณชื่นชอบ? พวกเขาเคยเป็นมือใหม่ที่คลิก "create pull request" ด้วยมือที่สั่นๆ เหมือนกับที่คุณกำลังจะทำตอนนี้
|
|
|
|
|
|
และนี่คือส่วนที่สวยงามที่สุด: ชุมชนโอเพนซอร์สเปรียบเสมือนกอดกลุ่มใหญ่ที่สุดบนอินเทอร์เน็ต โครงการส่วนใหญ่จะมองหาคนใหม่อย่างจริงจังและมีปัญหาที่ติดแท็ก "good first issue" สำหรับคนอย่างคุณอย่างเฉพาะเจาะจง! ผู้ดูแลรู้สึกตื่นเต้นเมื่อเห็นผู้มีส่วนร่วมใหม่เพราะพวกเขานึกถึงก้าวแรกของตนเอง
|
|
|
|
|
|
```mermaid
|
|
|
flowchart TD
|
|
|
A[🔍 สำรวจ GitHub] --> B[🏷️ หา "good first issue"]
|
|
|
B --> C[📖 อ่านแนวทางร่วมพัฒนา]
|
|
|
C --> D[🍴 Fork เก็บข้อมูล]
|
|
|
D --> E[💻 ตั้งค่าสภาพแวดล้อมในเครื่อง]
|
|
|
E --> F[🌿 สร้างสาขาคุณสมบัติ]
|
|
|
F --> G[✨ ส่งผลงานของคุณ]
|
|
|
G --> H[🧪 ทดสอบการเปลี่ยนแปลง]
|
|
|
H --> I[📝 เขียนคำสั่ง commit ให้ชัดเจน]
|
|
|
I --> J[📤 ดัน & สร้าง PR]
|
|
|
J --> K[💬 ตอบโต้กับคำแนะนำ]
|
|
|
K --> L[🎉 รวม! คุณเป็นผู้ร่วมพัฒนาแล้ว!]
|
|
|
L --> M[🌟 หา issue ถัดไป]
|
|
|
|
|
|
style A fill:#e1f5fe
|
|
|
style L fill:#c8e6c9
|
|
|
style M fill:#fff59d
|
|
|
```
|
|
|
คุณไม่ได้แค่เรียนรู้การเขียนโค้ดที่นี่ – คุณกำลังเตรียมตัวเข้าร่วมเป็นส่วนหนึ่งของครอบครัวผู้สร้างทั่วโลกที่ตื่นขึ้นทุกวันและคิดว่า "เราจะทำให้โลกดิจิทัลดีขึ้นเล็กน้อยได้อย่างไร?" ยินดีต้อนรับสู่คลับ! 🌟
|
|
|
|
|
|
ก่อนอื่น มาค้นหารีโปลที่คุณสนใจบน GitHub และคุณอยากมีส่วนร่วมเปลี่ยนแปลง คุณจะต้องคัดลอกเนื้อหานั้นไปยังเครื่องของคุณ
|
|
|
|
|
|
✅ วิธีที่ดีในการหาคลัง 'เหมาะสำหรับผู้เริ่มต้น' คือ [ค้นหาตามแท็ก 'good-first-issue'](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/)
|
|
|
|
|
|

|
|
|
|
|
|
มีหลายวิธีในการคัดลอกโค้ด วิธีหนึ่งคือการ "clone" เนื้อหาของรีโปโดยใช้ HTTPS, SSH หรือใช้ GitHub CLI (Command Line Interface)
|
|
|
|
|
|
เปิดเทอร์มินอลของคุณและโคลนรีโปดังนี้:
|
|
|
```bash
|
|
|
# การใช้ HTTPS
|
|
|
git clone https://github.com/ProjectURL
|
|
|
|
|
|
# การใช้ SSH (จำเป็นต้องตั้งค่า SSH key)
|
|
|
git clone git@github.com:username/repository.git
|
|
|
|
|
|
# การใช้ GitHub CLI
|
|
|
gh repo clone username/repository
|
|
|
```
|
|
|
|
|
|
เพื่อทำงานกับโครงการ ให้สลับไปยังโฟลเดอร์ที่ถูกต้อง:
|
|
|
`cd ProjectURL`
|
|
|
|
|
|
คุณยังสามารถเปิดโครงการทั้งหมดโดยใช้:
|
|
|
- **[GitHub Codespaces](https://github.com/features/codespaces)** - สภาพแวดล้อมการพัฒนาบนคลาวด์ของ GitHub พร้อม VS Code ในเบราว์เซอร์
|
|
|
- **[GitHub Desktop](https://desktop.github.com/)** - แอปพลิเคชัน GUI สำหรับการทำงานกับ Git
|
|
|
- **[GitHub.dev](https://github.dev)** - กดปุ่ม `.` บนรีโป GitHub ใดก็ได้เพื่อเปิด VS Code ในเบราว์เซอร์
|
|
|
- **VS Code** พร้อมส่วนขยาย GitHub Pull Requests
|
|
|
|
|
|
สุดท้าย คุณสามารถดาวน์โหลดโค้ดในโฟลเดอร์ซิป
|
|
|
|
|
|
### สิ่งน่าสนใจเพิ่มเติมเกี่ยวกับ GitHub
|
|
|
|
|
|
คุณสามารถกดดาว, ติดตาม และ/หรือ "fork" รีโปสาธารณะใด ๆ บน GitHub คุณสามารถค้นหารีโปที่คุณกดดาวไว้ในเมนูดรอปดาวน์ด้านบนขวา มันเหมือนการบุ๊กมาร์ก แต่นี่สำหรับโค้ด
|
|
|
|
|
|
โครงการต่าง ๆ มีตัวติดตามปัญหา โดยส่วนใหญ่บน GitHub ในแท็บ "Issues" เว้นแต่จะระบุอย่างอื่น ซึ่งผู้คนจะพูดคุยกันเกี่ยวกับปัญหาที่เกี่ยวข้องกับโครงการ และแท็บ Pull Requests คือที่ที่ผู้คนพูดคุยและตรวจสอบการเปลี่ยนแปลงที่กำลังดำเนินการ
|
|
|
|
|
|
โครงการอาจมีการอภิปรายในฟอรัม รายชื่อเมล หรือช่องแชทเช่น Slack, Discord หรือ IRC
|
|
|
|
|
|
🔧 **คุณสมบัติทันสมัยของ GitHub**:
|
|
|
- **GitHub Discussions** - ฟอรัมในตัวสำหรับการสนทนาของชุมชน
|
|
|
- **GitHub Sponsors** - สนับสนุนผู้ดูแลด้วยการเงิน
|
|
|
- **แท็บ Security** - รายงานช่องโหว่และคำแนะนำด้านความปลอดภัย
|
|
|
- **แท็บ Actions** - ดูเวิร์กโฟลว์อัตโนมัติและ pipelines CI/CD
|
|
|
- **แท็บ Insights** - วิเคราะห์เกี่ยวกับผู้มีส่วนร่วม, commits, และสุขภาพโครงการ
|
|
|
- **แท็บ Projects** - เครื่องมือจัดการโครงการในตัวของ GitHub
|
|
|
|
|
|
✅ ลองสำรวจรีโป GitHub ใหม่ของคุณและลองทำสิ่งต่าง ๆ เช่น แก้ไขการตั้งค่า, เพิ่มข้อมูลในรีโป, สร้างโครงการ (เช่น กระดาน Kanban) และตั้งค่า GitHub Actions เพื่อทำงานอัตโนมัติ มีอะไรให้ทำมากมาย!
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀 ความท้าทาย
|
|
|
|
|
|
ได้เวลาใช้พลัง GitHub ใหม่ของคุณแล้ว! 🚀 นี่คือความท้าทายที่จะทำให้ทุกอย่างเข้าที่เข้าทางอย่างพึงพอใจที่สุด:
|
|
|
|
|
|
ชวนเพื่อน (หรือสมาชิกครอบครัวที่ชอบถามว่าคุณทำอะไรกับ "เรื่องคอมพิวเตอร์" ทั้งหมดนี้) มาร่วมผจญภัยในการเขียนโค้ดร่วมกัน! นี่แหละคือเวทมนตร์จริง ๆ – สร้างโครงการ ให้เขา fork สร้างสาขา และรวมการเปลี่ยนแปลงเหมือนมือโปรที่คุณกำลังจะกลายเป็น
|
|
|
|
|
|
ไม่โกหกนะ – คุณอาจหัวเราะกันในบางช่วง (โดยเฉพาะตอนที่คุณทั้งคู่พยายามแก้ไขบรรทัดเดียวกัน) บางทีอาจเกาหัวด้วยความสับสน แต่คุณจะมีช่วงเวลาที่น่าทึ่งแบบ "อ๋อ!" ที่ทำให้การเรียนรู้ทั้งหมดคุ้มค่า นอกจากนี้ ยังมีสิ่งพิเศษเกี่ยวกับการแบ่งปันการรวมครั้งแรกที่สำเร็จกับคนอื่น – เหมือนฉลองเล็ก ๆ ว่าคุณมาไกลแค่ไหน!
|
|
|
|
|
|
ยังไม่มีเพื่อนเขียนโค้ดหรือ? ไม่ต้องกังวลนะ! ชุมชน GitHub มีคนต้อนรับอย่างอบอุ่นที่จำได้ว่าตัวเองเคยใหม่ มองหาคลังที่มีป้าย "good first issue" – มันเหมือนบอกว่า "เฮ้ มือใหม่ มาร่วมเรียนกับเรา!" เจ๋งมากใช่มั้ย?
|
|
|
|
|
|
## แบบทดสอบหลังการบรรยาย
|
|
|
[Post-lecture quiz](https://ff-quizzes.netlify.app/web/en/)
|
|
|
|
|
|
## ทบทวน & เรียนรู้ต่อเนื่อง
|
|
|
|
|
|
ว้าว! 🎉 ดูสิคุณ – คุณเพิ่งพิชิตพื้นฐาน GitHub เหมือนแชมป์เปี้ยนจริง ๆ! ถ้าคุณรู้สึกสมองเต็มตอนนี้ นั่นเป็นเรื่องปกติและจริง ๆ แล้วเป็นสัญญาณที่ดี คุณเพิ่งเรียนรู้เครื่องมือที่ฉันใช้เวลาหลายสัปดาห์กว่าจะชินตอนเริ่มต้น
|
|
|
|
|
|
Git และ GitHub มีพลังอย่างมาก (อย่างจริงจังมาก) และนักพัฒนาทุกคนที่ฉันรู้จัก – รวมถึงคนที่ดูเหมือนเป็นพ่อมดตอนนี้ – ต้องฝึกฝนและทำพลาดบ้างก่อนที่จะเข้าใจทั้งหมด ความจริงที่ว่าคุณผ่านบทเรียนนี้แสดงว่าคุณกำลังอยู่บนเส้นทางเพื่อเชี่ยวชาญเครื่องมือที่สำคัญที่สุดในกล่องเครื่องมือของนักพัฒนา
|
|
|
|
|
|
นี่คือแหล่งข้อมูลดี ๆ ที่จะช่วยคุณฝึกและเก่งขึ้นอีก:
|
|
|
|
|
|
- [คู่มือการมีส่วนร่วมกับซอฟต์แวร์โอเพนซอร์ส](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution) – แผนที่เส้นทางสู่การสร้างความแตกต่าง
|
|
|
- [ชีทสรุปคำสั่ง Git](https://training.github.com/downloads/github-git-cheat-sheet/) – เก็บไว้สำหรับอ้างอิงอย่างรวดเร็ว!
|
|
|
|
|
|
และจำไว้: ฝึกฝนทำให้ก้าวหน้า ไม่ใช่สมบูรณ์แบบ! ยิ่งคุณใช้ Git และ GitHub มากเท่าไหร่ ก็จะยิ่งเป็นธรรมชาติมากขึ้น GitHub ได้สร้างคอร์สแบบอินเทอร์แอคทีฟที่ให้คุณฝึกในสภาพแวดล้อมที่ปลอดภัย:
|
|
|
|
|
|
- [การแนะนำ GitHub](https://github.com/skills/introduction-to-github)
|
|
|
- [สื่อสารด้วย Markdown](https://github.com/skills/communicate-using-markdown)
|
|
|
- [GitHub Pages](https://github.com/skills/github-pages)
|
|
|
- [จัดการความขัดแย้ง merge](https://github.com/skills/resolve-merge-conflicts)
|
|
|
|
|
|
**อยากลองของใหม่? ดูเครื่องมือทันสมัยเหล่านี้:**
|
|
|
- [เอกสาร GitHub CLI](https://cli.github.com/manual/) – สำหรับคนที่อยากรู้สึกเหมือนพ่อมดคอมมานด์ไลน์
|
|
|
- [เอกสาร GitHub Codespaces](https://docs.github.com/en/codespaces) – เขียนโค้ดบนคลาวด์!
|
|
|
- [เอกสาร GitHub Actions](https://docs.github.com/en/actions) – อัตโนมัติทุกสิ่ง
|
|
|
- [แนวปฏิบัติที่ดีที่สุดของ Git](https://www.atlassian.com/git/tutorials/comparing-workflows) – ยกระดับวิธีทำงานของคุณ
|
|
|
|
|
|
## ความท้าทาย GitHub Copilot Agent 🚀
|
|
|
|
|
|
ใช้โหมด Agent เพื่อทำความท้าทายต่อไปนี้ให้สำเร็จ:
|
|
|
|
|
|
**คำอธิบาย:** สร้างโครงการเว็บพัฒนาร่วมที่แสดงเวิร์กโฟลว์ GitHub แบบสมบูรณ์ที่คุณเรียนรู้ในบทเรียนนี้ ความท้าทายนี้จะช่วยให้คุณฝึกสร้างรีโป การทำงานร่วมกัน และเวิร์กโฟลว์ Git ที่ทันสมัยในสถานการณ์จริง
|
|
|
|
|
|
**คำกระตุ้น:** สร้างรีโป GitHub สาธารณะใหม่สำหรับโครงการ "ทรัพยากรการพัฒนาเว็บ" ที่เรียบง่าย รีโปควรรวมไฟล์ README.md ที่มีโครงสร้างดี รายการเครื่องมือและทรัพยากรการพัฒนาเว็บที่เป็นประโยชน์ แบ่งตามหมวดหมู่ (HTML, CSS, JavaScript เป็นต้น) ตั้งค่ารีโปด้วยมาตรฐานชุมชนที่เหมาะสม รวมถึงใบอนุญาต, แนวทางการร่วมมือ, และรหัสจรรยาบรรณ สร้างสาขาฟีเจอร์อย่างน้อยสองสาขา: หนึ่งสำหรับเพิ่มทรัพยากร CSS อีกหนึ่งสำหรับทรัพยากร JavaScript ทำ commit ในแต่ละสาขาพร้อมข้อความ commit ที่อธิบายรายละเอียด จากนั้นสร้าง pull request เพื่อรวมการเปลี่ยนแปลงกลับไปสู่ main เปิดใช้ฟีเจอร์ GitHub เช่น Issues, Discussions และตั้งค่าเวิร์กโฟลว์ GitHub Actions พื้นฐานสำหรับการตรวจสอบอัตโนมัติ
|
|
|
|
|
|
## การบ้าน
|
|
|
|
|
|
ภารกิจของคุณ หากคุณเลือกที่จะรับ: ทำคอร์ส [Introduction to GitHub](https://github.com/skills/introduction-to-github) บน GitHub Skills คอร์สอินเทอร์แอคทีฟนี้จะให้คุณฝึกทุกอย่างที่เรียนในสภาพแวดล้อมที่ปลอดภัยและมีคำแนะนำ และคุณจะได้รับเหรียญรางวัลเจ๋ง ๆ เมื่อจบ! 🏅
|
|
|
|
|
|
**พร้อมสำหรับความท้าทายเพิ่มเติมหรือยัง?**
|
|
|
- ตั้งค่า SSH authentication สำหรับบัญชี GitHub ของคุณ (ไม่ต้องใช้รหัสผ่านอีกต่อไป!)
|
|
|
- ลองใช้ GitHub CLI สำหรับการทำงาน Git ประจำวันของคุณ
|
|
|
- สร้างรีโปพร้อมเวิร์กโฟลว์ GitHub Actions
|
|
|
- สำรวจ GitHub Codespaces โดยการเปิดรีโปนี้ในตัวแก้ไขบนคลาวด์
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀 เส้นเวลาความเชี่ยวชาญ GitHub ของคุณ
|
|
|
|
|
|
### ⚡ **สิ่งที่คุณทำได้ใน 5 นาทีถัดไป**
|
|
|
- [ ] กดดาวรีโปนี้และอีก 3 โครงการที่คุณสนใจ
|
|
|
- [ ] ตั้งค่าการยืนยันตัวตนสองชั้นในบัญชี GitHub ของคุณ
|
|
|
- [ ] สร้าง README ง่าย ๆ สำหรับรีโปแรกของคุณ
|
|
|
- [ ] ติดตามนักพัฒนาที่สร้างแรงบันดาลใจคุณ 5 คน
|
|
|
|
|
|
### 🎯 **สิ่งที่คุณทำได้ในชั่วโมงนี้**
|
|
|
- [ ] ทำแบบทดสอบหลังบทเรียนและคิดทบทวนการเดินทางกับ GitHub ของคุณ
|
|
|
- [ ] ตั้งค่า SSH keys สำหรับการยืนยันตัวตนแบบไม่ต้องใช้รหัสผ่าน
|
|
|
- [ ] สร้าง commit แรกที่มีความหมายพร้อมข้อความ commit ที่ดี
|
|
|
- [ ] สำรวจแท็บ "Explore" ของ GitHub เพื่อค้นหาโครงการยอดนิยม
|
|
|
- [ ] ฝึกการ fork รีโปและทำการเปลี่ยนแปลงเล็กน้อย
|
|
|
|
|
|
### 📅 **การผจญภัยกับ GitHub ตลอดสัปดาห์**
|
|
|
- [ ] ทำคอร์ส GitHub Skills (Introduction to GitHub, Markdown)
|
|
|
- [ ] สร้าง pull request แรกให้กับโครงการโอเพนซอร์ส
|
|
|
- [ ] ตั้งค่าเว็บไซต์ GitHub Pages เพื่อแสดงผลงานของคุณ
|
|
|
- [ ] เข้าร่วม GitHub Discussions ในโครงการที่คุณสนใจ
|
|
|
- [ ] สร้างรีโปพร้อมมาตรฐานชุมชนที่เหมาะสม (README, License เป็นต้น)
|
|
|
- [ ] ลองใช้ GitHub Codespaces สำหรับการพัฒนาบนคลาวด์
|
|
|
|
|
|
### 🌟 **การเปลี่ยนแปลงตลอดเดือน**
|
|
|
- [ ] มีส่วนร่วมกับโครงการโอเพนซอร์ส 3 โครงการที่แตกต่างกัน
|
|
|
- [ ] เป็นพี่เลี้ยงให้กับคนที่เพิ่งเริ่มใช้ GitHub (ส่งต่อความรู้)
|
|
|
- [ ] ตั้งค่าเวิร์กโฟลว์อัตโนมัติด้วย GitHub Actions
|
|
|
- [ ] สร้างผลงานแสดงการมีส่วนร่วมใน GitHub ของคุณ
|
|
|
- [ ] เข้าร่วมกิจกรรม Hacktoberfest หรือกิจกรรมชุมชนอื่น ๆ
|
|
|
- [ ] เป็นผู้ดูแลโครงการของคุณเองที่คนอื่นมีส่วนร่วมด้วย
|
|
|
|
|
|
### 🎓 **ตรวจสอบความเชี่ยวชาญ GitHub สุดท้าย**
|
|
|
|
|
|
**ฉลองความก้าวหน้าของคุณ:**
|
|
|
- คุณชอบอะไรที่สุดเกี่ยวกับการใช้ GitHub?
|
|
|
- ฟีเจอร์การทำงานร่วมกันไหนที่คุณตื่นเต้นที่สุด?
|
|
|
- คุณรู้สึกมั่นใจในการมีส่วนร่วมกับโอเพนซอร์สแค่ไหนตอนนี้?
|
|
|
- โครงการแรกที่คุณอยากมีส่วนร่วมคืออะไร?
|
|
|
|
|
|
```mermaid
|
|
|
journey
|
|
|
title การเดินทางความมั่นใจใน GitHub ของคุณ
|
|
|
section วันนี้
|
|
|
Nervous: 3: You
|
|
|
Curious: 4: You
|
|
|
Excited: 5: You
|
|
|
section สัปดาห์นี้
|
|
|
Practicing: 4: You
|
|
|
Contributing: 5: You
|
|
|
Connecting: 5: You
|
|
|
section เดือนหน้า
|
|
|
Collaborating: 5: You
|
|
|
Leading: 5: You
|
|
|
Inspiring Others: 5: You
|
|
|
```
|
|
|
> 🌍 **ยินดีต้อนรับสู่ชุมชนนักพัฒนาทั่วโลก!** ตอนนี้คุณมีเครื่องมือที่จะทำงานร่วมกับนักพัฒนากว่าล้านคนทั่วโลก การมีส่วนร่วมครั้งแรกของคุณอาจดูเล็กน้อย แต่จงจำไว้ – โครงการโอเพนซอร์สใหญ่ ๆ ทุกโครงการเริ่มจากใครบางคนที่ทำ commit ครั้งแรก คำถามไม่ใช่ว่าคุณจะสร้างผลกระทบได้หรือไม่ แต่คือโครงการเจ๋ง ๆ ใดจะได้รับประโยชน์จากมุมมองของคุณก่อน! 🚀
|
|
|
|
|
|
จำไว้ว่าผู้เชี่ยวชาญทุกคนเคยเป็นมือใหม่มาก่อน คุณทำได้แน่นอน! 💪
|
|
|
|
|
|
---
|
|
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
|
**ข้อจำกัดความรับผิดชอบ**:
|
|
|
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อนได้ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลสำคัญ ขอแนะนำให้ใช้บริการแปลโดยนักแปลมืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดขึ้นจากการใช้การแปลนี้
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |