You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
344 lines
36 KiB
344 lines
36 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "ea65b75e488aa33a3cc5cb1c6c3f047a",
|
|
"translation_date": "2025-10-03T13:59:11+00:00",
|
|
"source_file": "1-getting-started-lessons/2-github-basics/README.md",
|
|
"language_code": "th"
|
|
}
|
|
-->
|
|
# แนะนำ GitHub
|
|
|
|
บทเรียนนี้ครอบคลุมพื้นฐานของ GitHub ซึ่งเป็นแพลตฟอร์มสำหรับโฮสต์และจัดการการเปลี่ยนแปลงในโค้ดของคุณ
|
|
|
|

|
|
> ภาพสเก็ตโน้ตโดย [Tomomi Imura](https://twitter.com/girlie_mac)
|
|
|
|
## แบบทดสอบก่อนเรียน
|
|
[แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app)
|
|
|
|
## บทนำ
|
|
|
|
ในบทเรียนนี้ เราจะพูดถึง:
|
|
|
|
- การติดตามงานที่คุณทำบนเครื่องของคุณ
|
|
- การทำงานร่วมกันในโปรเจกต์กับผู้อื่น
|
|
- วิธีการมีส่วนร่วมในซอฟต์แวร์โอเพ่นซอร์ส
|
|
|
|
### สิ่งที่ต้องเตรียมก่อนเริ่ม
|
|
|
|
ก่อนเริ่มต้น คุณต้องตรวจสอบว่า Git ได้ติดตั้งอยู่แล้วหรือไม่ ในเทอร์มินัลให้พิมพ์:
|
|
`git --version`
|
|
|
|
หากยังไม่ได้ติดตั้ง Git ให้ [ดาวน์โหลด Git](https://git-scm.com/downloads) จากนั้นตั้งค่าโปรไฟล์ Git ในเครื่องของคุณในเทอร์มินัล:
|
|
* `git config --global user.name "your-name"`
|
|
* `git config --global user.email "your-email"`
|
|
|
|
เพื่อเช็คว่า Git ได้ถูกตั้งค่าแล้วหรือยัง คุณสามารถพิมพ์:
|
|
`git config --list`
|
|
|
|
คุณจะต้องมีบัญชี GitHub, โปรแกรมแก้ไขโค้ด (เช่น Visual Studio Code) และเปิดเทอร์มินัล (หรือ: command prompt)
|
|
|
|
ไปที่ [github.com](https://github.com/) และสร้างบัญชีหากคุณยังไม่มี หรือเข้าสู่ระบบและกรอกข้อมูลโปรไฟล์ของคุณ
|
|
|
|
✅ GitHub ไม่ใช่ที่เก็บโค้ดเพียงแห่งเดียวในโลก แต่เป็นที่รู้จักมากที่สุด
|
|
|
|
### การเตรียมตัว
|
|
|
|
คุณจะต้องมีทั้งโฟลเดอร์ที่มีโปรเจกต์โค้ดในเครื่องของคุณ (แล็ปท็อปหรือ PC) และที่เก็บสาธารณะบน GitHub ซึ่งจะใช้เป็นตัวอย่างสำหรับวิธีการมีส่วนร่วมในโปรเจกต์ของผู้อื่น
|
|
|
|
---
|
|
|
|
## การจัดการโค้ด
|
|
|
|
สมมติว่าคุณมีโฟลเดอร์ในเครื่องที่มีโปรเจกต์โค้ด และคุณต้องการเริ่มติดตามความคืบหน้าของคุณโดยใช้ git - ระบบควบคุมเวอร์ชัน บางคนเปรียบการใช้ git กับการเขียนจดหมายรักถึงตัวคุณในอนาคต การอ่านข้อความ commit ของคุณในอีกไม่กี่วัน สัปดาห์ หรือเดือนต่อมา คุณจะสามารถระลึกถึงเหตุผลที่คุณตัดสินใจ หรือ "ย้อนกลับ" การเปลี่ยนแปลงได้ - นั่นคือเมื่อคุณเขียนข้อความ commit ที่ดี
|
|
|
|
### งาน: สร้างที่เก็บและ commit โค้ด
|
|
|
|
> ดูวิดีโอ
|
|
>
|
|
> [](https://www.youtube.com/watch?v=9R31OUPpxU4)
|
|
|
|
1. **สร้างที่เก็บบน GitHub**. บน GitHub.com ในแท็บที่เก็บ หรือจากแถบนำทางด้านบนขวา ให้ค้นหาปุ่ม **new repo**
|
|
|
|
1. ตั้งชื่อที่เก็บของคุณ (โฟลเดอร์)
|
|
1. เลือก **create repository**
|
|
|
|
1. **ไปยังโฟลเดอร์ที่คุณทำงาน**. ในเทอร์มินัลของคุณ ให้เปลี่ยนไปยังโฟลเดอร์ (หรือที่เรียกว่าดิเรกทอรี) ที่คุณต้องการเริ่มติดตาม พิมพ์:
|
|
|
|
```bash
|
|
cd [name of your folder]
|
|
```
|
|
|
|
1. **เริ่มต้นที่เก็บ git**. ในโปรเจกต์ของคุณพิมพ์:
|
|
|
|
```bash
|
|
git init
|
|
```
|
|
|
|
1. **ตรวจสอบสถานะ**. เพื่อดูสถานะของที่เก็บของคุณ พิมพ์:
|
|
|
|
```bash
|
|
git status
|
|
```
|
|
|
|
ผลลัพธ์อาจดูเหมือนดังนี้:
|
|
|
|
```output
|
|
Changes not staged for commit:
|
|
(use "git add <file>..." to update what will be committed)
|
|
(use "git checkout -- <file>..." to discard changes in working directory)
|
|
|
|
modified: file.txt
|
|
modified: file2.txt
|
|
```
|
|
|
|
โดยทั่วไปคำสั่ง `git status` จะบอกคุณเกี่ยวกับไฟล์ที่พร้อมจะ _บันทึก_ ลงในที่เก็บ หรือมีการเปลี่ยนแปลงที่คุณอาจต้องการบันทึก
|
|
|
|
1. **เพิ่มไฟล์ทั้งหมดเพื่อการติดตาม**
|
|
เรียกอีกอย่างว่าการจัดไฟล์/เพิ่มไฟล์ไปยังพื้นที่ staging
|
|
|
|
```bash
|
|
git add .
|
|
```
|
|
|
|
คำสั่ง `git add` พร้อมอาร์กิวเมนต์ `.` หมายถึงการเพิ่มไฟล์และการเปลี่ยนแปลงทั้งหมดเพื่อการติดตาม
|
|
|
|
1. **เพิ่มไฟล์ที่เลือกเพื่อการติดตาม**
|
|
|
|
```bash
|
|
git add [file or folder name]
|
|
```
|
|
|
|
คำสั่งนี้ช่วยให้เราเพิ่มเฉพาะไฟล์ที่เลือกไปยังพื้นที่ staging เมื่อเราไม่ต้องการ commit ไฟล์ทั้งหมดในครั้งเดียว
|
|
|
|
1. **ยกเลิกการจัดไฟล์ทั้งหมด**
|
|
|
|
```bash
|
|
git reset
|
|
```
|
|
|
|
คำสั่งนี้ช่วยให้เรายกเลิกการจัดไฟล์ทั้งหมดในครั้งเดียว
|
|
|
|
1. **ยกเลิกการจัดไฟล์เฉพาะ**
|
|
|
|
```bash
|
|
git reset [file or folder name]
|
|
```
|
|
|
|
คำสั่งนี้ช่วยให้เรายกเลิกการจัดไฟล์เฉพาะไฟล์ในครั้งเดียวที่เราไม่ต้องการรวมไว้สำหรับ commit ครั้งถัดไป
|
|
|
|
1. **บันทึกงานของคุณ**. ณ จุดนี้คุณได้เพิ่มไฟล์ไปยังพื้นที่ที่เรียกว่า _staging area_ ซึ่งเป็นที่ที่ Git กำลังติดตามไฟล์ของคุณ เพื่อทำให้การเปลี่ยนแปลงถาวร คุณต้อง _commit_ ไฟล์เหล่านั้น การสร้าง _commit_ ด้วยคำสั่ง `git commit` จะเป็นตัวแทนของจุดบันทึกในประวัติของที่เก็บของคุณ พิมพ์คำสั่งต่อไปนี้เพื่อสร้าง _commit_:
|
|
|
|
```bash
|
|
git commit -m "first commit"
|
|
```
|
|
|
|
คำสั่งนี้จะ commit ไฟล์ทั้งหมดของคุณ พร้อมเพิ่มข้อความ "first commit" สำหรับข้อความ commit ในอนาคต คุณควรให้คำอธิบายที่ชัดเจนเพื่อสื่อถึงประเภทของการเปลี่ยนแปลงที่คุณทำ
|
|
|
|
1. **เชื่อมต่อที่เก็บ Git ในเครื่องของคุณกับ GitHub**. ที่เก็บ Git ในเครื่องของคุณนั้นดี แต่ในบางจุดคุณอาจต้องการสำรองไฟล์ของคุณไว้ที่อื่น และเชิญผู้อื่นมาทำงานร่วมกับคุณในที่เก็บของคุณ สถานที่ที่ดีสำหรับการทำเช่นนั้นคือ GitHub จำไว้ว่าคุณได้สร้างที่เก็บบน GitHub แล้ว ดังนั้นสิ่งเดียวที่คุณต้องทำคือเชื่อมต่อที่เก็บ Git ในเครื่องของคุณกับ GitHub คำสั่ง `git remote add` จะทำสิ่งนั้น พิมพ์คำสั่งต่อไปนี้:
|
|
|
|
> หมายเหตุ ก่อนพิมพ์คำสั่ง ให้ไปที่หน้าที่เก็บ GitHub ของคุณเพื่อค้นหา URL ของที่เก็บ คุณจะใช้มันในคำสั่งด้านล่าง แทนที่ ```https://github.com/username/repository_name.git``` ด้วย URL GitHub ของคุณ
|
|
|
|
```bash
|
|
git remote add origin https://github.com/username/repository_name.git
|
|
```
|
|
|
|
คำสั่งนี้สร้าง _remote_ หรือการเชื่อมต่อที่ชื่อว่า "origin" ซึ่งชี้ไปยังที่เก็บ GitHub ที่คุณสร้างไว้ก่อนหน้านี้
|
|
|
|
1. **ส่งไฟล์ในเครื่องไปยัง GitHub**. จนถึงตอนนี้คุณได้สร้าง _connection_ ระหว่างที่เก็บในเครื่องและที่เก็บ GitHub แล้ว มาส่งไฟล์เหล่านี้ไปยัง GitHub ด้วยคำสั่ง `git push` ดังนี้:
|
|
|
|
> หมายเหตุ ชื่อ branch ของคุณอาจแตกต่างจาก ```main``` โดยค่าเริ่มต้น
|
|
|
|
```bash
|
|
git push -u origin main
|
|
```
|
|
|
|
คำสั่งนี้ส่ง commit ของคุณใน branch "main" ไปยัง GitHub การตั้งค่า branch `upstream` รวมถึง `-u` ในคำสั่งจะสร้างลิงก์ระหว่าง branch ในเครื่องของคุณและ branch ระยะไกล ดังนั้นคุณสามารถใช้ git push หรือ git pull โดยไม่ต้องระบุชื่อ branch ในอนาคต Git จะใช้ branch upstream โดยอัตโนมัติ และคุณไม่จำเป็นต้องระบุชื่อ branch อย่างชัดเจนในคำสั่งในอนาคต
|
|
|
|
2. **เพิ่มการเปลี่ยนแปลงเพิ่มเติม**. หากคุณต้องการทำการเปลี่ยนแปลงเพิ่มเติมและส่งไปยัง GitHub คุณเพียงแค่ใช้คำสั่งสามคำสั่งต่อไปนี้:
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "type your commit message here"
|
|
git push
|
|
```
|
|
|
|
> เคล็ดลับ คุณอาจต้องการใช้ไฟล์ `.gitignore` เพื่อป้องกันไม่ให้ไฟล์ที่คุณไม่ต้องการติดตามปรากฏบน GitHub เช่น ไฟล์บันทึกที่คุณเก็บไว้ในโฟลเดอร์เดียวกันแต่ไม่มีที่ในที่เก็บสาธารณะ คุณสามารถค้นหาเทมเพลตสำหรับไฟล์ `.gitignore` ได้ที่ [.gitignore templates](https://github.com/github/gitignore)
|
|
|
|
#### ข้อความ commit
|
|
|
|
หัวข้อข้อความ commit ที่ยอดเยี่ยมของ Git จะสมบูรณ์เมื่อเติมประโยคต่อไปนี้:
|
|
หากนำไปใช้ commit นี้จะ <หัวข้อของคุณที่นี่>
|
|
|
|
สำหรับหัวข้อให้ใช้คำกริยาในรูปแบบคำสั่งและปัจจุบัน: "เปลี่ยน" ไม่ใช่ "เปลี่ยนแล้ว" หรือ "เปลี่ยนแปลง"
|
|
เช่นเดียวกับหัวข้อ ในเนื้อหา (ไม่บังคับ) ให้ใช้คำกริยาในรูปแบบคำสั่งและปัจจุบัน เนื้อหาควรรวมถึงแรงจูงใจในการเปลี่ยนแปลงและเปรียบเทียบกับพฤติกรรมก่อนหน้า คุณกำลังอธิบาย `เหตุผล` ไม่ใช่ `วิธีการ`
|
|
|
|
✅ ใช้เวลาสักครู่เพื่อสำรวจ GitHub คุณสามารถหาข้อความ commit ที่ยอดเยี่ยมได้หรือไม่? คุณสามารถหาข้อความที่เรียบง่ายได้หรือไม่? ข้อมูลใดที่คุณคิดว่าสำคัญและมีประโยชน์ที่สุดในการสื่อสารในข้อความ commit?
|
|
|
|
### งาน: ทำงานร่วมกัน
|
|
|
|
เหตุผลหลักในการนำสิ่งต่าง ๆ ไปไว้บน GitHub คือการทำให้สามารถทำงานร่วมกับนักพัฒนาคนอื่น ๆ ได้
|
|
|
|
## การทำงานในโปรเจกต์ร่วมกับผู้อื่น
|
|
|
|
> ดูวิดีโอ
|
|
>
|
|
> [](https://www.youtube.com/watch?v=bFCM-PC3cu8)
|
|
|
|
ในที่เก็บของคุณ ไปที่ `Insights > Community` เพื่อดูว่าโปรเจกต์ของคุณเปรียบเทียบกับมาตรฐานชุมชนที่แนะนำอย่างไร
|
|
|
|
สิ่งเหล่านี้สามารถปรับปรุงที่เก็บ GitHub ของคุณได้:
|
|
- **คำอธิบาย**. คุณได้เพิ่มคำอธิบายสำหรับโปรเจกต์ของคุณหรือไม่?
|
|
- **README**. คุณได้เพิ่ม README หรือไม่? GitHub มีคำแนะนำสำหรับการเขียน [README](https://docs.github.com/articles/about-readmes/?WT.mc_id=academic-77807-sagibbon)
|
|
- **แนวทางการมีส่วนร่วม**. โปรเจกต์ของคุณมี [แนวทางการมีส่วนร่วม](https://docs.github.com/articles/setting-guidelines-for-repository-contributors/?WT.mc_id=academic-77807-sagibbon) หรือไม่
|
|
- **จรรยาบรรณ**. มี [จรรยาบรรณ](https://docs.github.com/articles/adding-a-code-of-conduct-to-your-project/) หรือไม่
|
|
- **ใบอนุญาต**. อาจสำคัญที่สุดคือ [ใบอนุญาต](https://docs.github.com/articles/adding-a-license-to-a-repository/)
|
|
|
|
ทรัพยากรเหล่านี้จะเป็นประโยชน์ต่อการต้อนรับสมาชิกทีมใหม่ และมักเป็นสิ่งที่ผู้มีส่วนร่วมใหม่มองหาก่อนที่จะดูโค้ดของคุณ เพื่อค้นหาว่าโปรเจกต์ของคุณเป็นสถานที่ที่เหมาะสมสำหรับการใช้เวลาของพวกเขาหรือไม่
|
|
|
|
✅ ไฟล์ README แม้ว่าจะใช้เวลาในการเตรียม แต่ก็มักถูกละเลยโดยผู้ดูแลที่ยุ่ง คุณสามารถหาตัวอย่างของไฟล์ README ที่มีคำอธิบายโดยละเอียดได้หรือไม่? หมายเหตุ: มี [เครื่องมือช่วยสร้าง README ที่ดี](https://www.makeareadme.com/) ที่คุณอาจอยากลองใช้
|
|
|
|
### งาน: รวมโค้ดบางส่วน
|
|
|
|
เอกสารการมีส่วนร่วมช่วยให้ผู้คนมีส่วนร่วมในโปรเจกต์ได้ มันอธิบายถึงประเภทของการมีส่วนร่วมที่คุณกำลังมองหาและวิธีการทำงาน ผู้มีส่วนร่วมจะต้องผ่านขั้นตอนต่าง ๆ เพื่อที่จะสามารถมีส่วนร่วมในที่เก็บของคุณบน GitHub:
|
|
|
|
1. **Fork ที่เก็บของคุณ** คุณอาจต้องการให้ผู้คน _fork_ โปรเจกต์ของคุณ การ fork หมายถึงการสร้างสำเนาของที่เก็บของคุณบนโปรไฟล์ GitHub ของพวกเขา
|
|
1. **Clone**. จากนั้นพวกเขาจะ clone โปรเจกต์ไปยังเครื่องของพวกเขา
|
|
1. **สร้าง branch**. คุณจะต้องขอให้พวกเขาสร้าง _branch_ สำหรับงานของพวกเขา
|
|
1. **มุ่งเน้นการเปลี่ยนแปลงในพื้นที่เดียว**. ขอให้ผู้มีส่วนร่วมมุ่งเน้นการมีส่วนร่วมในสิ่งเดียวในแต่ละครั้ง - ด้วยวิธีนี้โอกาสที่คุณจะสามารถ _รวม_ งานของพวกเขาได้จะสูงขึ้น ลองนึกภาพว่าพวกเขาเขียนการแก้ไขข้อบกพร่อง เพิ่มฟีเจอร์ใหม่ และอัปเดตการทดสอบหลายรายการ - จะเกิดอะไรขึ้นหากคุณต้องการ หรือสามารถนำไปใช้ได้เพียง 2 ใน 3 หรือ 1 ใน 3 การเปลี่ยนแปลง?
|
|
|
|
✅ ลองนึกภาพสถานการณ์ที่ branch มีความสำคัญอย่างยิ่งต่อการเขียนและส่งโค้ดที่ดี คุณสามารถคิดถึงกรณีการใช้งานอะไรได้บ้าง?
|
|
|
|
> หมายเหตุ เป็นการเปลี่ยนแปลงที่คุณต้องการเห็นในโลก และสร้าง branch สำหรับงานของคุณเองด้วย commit ใด ๆ ที่คุณทำจะถูกทำใน branch ที่คุณกำลัง "checked out" อยู่ ใช้ `git status` เพื่อดูว่า branch นั้นคืออะไร
|
|
|
|
มาดูขั้นตอนการทำงานของผู้มีส่วนร่วมกัน สมมติว่าผู้มีส่วนร่วมได้ _fork_ และ _clone_ ที่เก็บแล้ว ดังนั้นพวกเขาจึงมีที่เก็บ Git พร้อมที่จะทำงานบนเครื่องของพวกเขา:
|
|
|
|
1. **สร้าง branch**. ใช้คำสั่ง `git branch` เพื่อสร้าง branch ที่จะมีการเปลี่ยนแปลงที่พวกเขาตั้งใจจะมีส่วนร่วม:
|
|
|
|
```bash
|
|
git branch [branch-name]
|
|
```
|
|
|
|
1. **สลับไปยัง branch ที่ทำงาน**. สลับไปยัง branch ที่ระบุและอัปเดตไดเรกทอรีการทำงานด้วย `git switch`:
|
|
|
|
```bash
|
|
git switch [branch-name]
|
|
```
|
|
|
|
1. **ทำงาน**. ณ จุดนี้คุณต้องการเพิ่มการเปลี่ยนแปลงของคุณ อย่าลืมบอก Git เกี่ยวกับมันด้วยคำสั่งต่อไปนี้:
|
|
|
|
```bash
|
|
git add .
|
|
git commit -m "my changes"
|
|
```
|
|
|
|
อย่าลืมตั้งชื่อ commit ของคุณให้ดี เพื่อประโยชน์ของคุณเองและผู้ดูแลที่เก็บที่คุณกำลังช่วยเหลือ
|
|
|
|
1. **รวมงานของคุณกับ branch `main`**. ณ จุดหนึ่งคุณทำงานเสร็จแล้ว และคุณต้องการรวมงานของคุณกับ branch `main` branch `main` อาจมีการเปลี่ยนแปลงในระหว่างนี้ ดังนั้นให้แน่ใจว่าคุณอัปเดต branch ให้เป็นเวอร์ชันล่าสุดด้วยคำสั่งต่อไปนี้:
|
|
|
|
```bash
|
|
git switch main
|
|
git pull
|
|
```
|
|
|
|
ณ จุดนี้คุณต้องแน่ใจว่า _conflicts_ หรือสถานการณ์ที่ Git ไม่สามารถ _รวม_ การเปลี่ยนแปลงได้ง่าย ๆ เกิดขึ้นใน branch ที่คุณกำลังทำงานอยู่ ดังนั้นให้รันคำสั่งต่อไปนี้:
|
|
|
|
```bash
|
|
git switch [branch_name]
|
|
git merge main
|
|
```
|
|
|
|
คำสั่ง `git merge main` จะนำการเปลี่ยนแปลงทั้งหมดจาก `main` เข้ามาใน branch ของคุณ หวังว่าคุณจะสามารถดำเนินการต่อได้ หากไม่เป็นเช่นนั้น VS Code จะบอกคุณว่าที่ไหนที่ Git _สับสน_ และคุณเพียงแค่แก้ไขไฟล์ที่ได้รับผลกระทบเพื่อบอกว่าคอนเทนต์ใดที่ถูกต้องที่สุด
|
|
|
|
เพื่อสลับไปยัง branch อื่น ใช้คำสั่ง `git switch` ที่ทันสมัย:
|
|
```bash
|
|
git switch [branch_name]
|
|
|
|
|
|
1. **ส่งงานของคุณไปยัง GitHub**. การส่งงานของคุณไปยัง GitHub หมายถึงสองสิ่ง การ push branch ของคุณไปยังที่เก็บของคุณ และจากนั้นเปิด PR หรือ Pull Request
|
|
|
|
```bash
|
|
git push --set-upstream origin [branch-name]
|
|
```
|
|
|
|
คำสั่งด้านบนสร้าง branch บนที่เก็บที่ forked ของคุณ
|
|
1. **เปิด PR**. ขั้นตอนต่อไปคือการเปิด PR (Pull Request) คุณสามารถทำได้โดยไปที่ repo ที่คุณ fork บน GitHub คุณจะเห็นข้อความบน GitHub ที่ถามว่าคุณต้องการสร้าง PR ใหม่หรือไม่ ให้คลิกที่ข้อความนั้น แล้วคุณจะถูกนำไปยังหน้าที่คุณสามารถเปลี่ยนชื่อ commit message และเพิ่มคำอธิบายที่เหมาะสมได้ จากนั้น maintainer ของ repo ที่คุณ fork จะเห็น PR นี้ และ _หวังว่า_ พวกเขาจะชื่นชมและ _merge_ PR ของคุณ คุณก็จะกลายเป็น contributor แล้ว เย้ :)
|
|
|
|
1. **ทำความสะอาด**. การทำความสะอาดหลังจาก merge PR สำเร็จถือเป็นแนวปฏิบัติที่ดี คุณควรลบทั้ง branch ในเครื่องของคุณและ branch ที่คุณ push ไปยัง GitHub เริ่มต้นด้วยการลบ branch ในเครื่องโดยใช้คำสั่งต่อไปนี้:
|
|
|
|
```bash
|
|
git branch -d [branch-name]
|
|
```
|
|
|
|
จากนั้นไปที่หน้า GitHub ของ repo ที่คุณ fork และลบ remote branch ที่คุณเพิ่ง push ไป
|
|
|
|
`Pull request` อาจฟังดูเป็นคำที่แปลก เพราะจริง ๆ แล้วคุณต้องการ push การเปลี่ยนแปลงของคุณไปยังโปรเจกต์ แต่ maintainer (เจ้าของโปรเจกต์) หรือทีมหลักต้องพิจารณาการเปลี่ยนแปลงของคุณก่อนที่จะ merge เข้ากับ branch "main" ของโปรเจกต์ ดังนั้นจริง ๆ แล้วคุณกำลังขอให้ maintainer ตัดสินใจเกี่ยวกับการเปลี่ยนแปลงของคุณ
|
|
|
|
Pull request เป็นพื้นที่สำหรับเปรียบเทียบและพูดคุยเกี่ยวกับความแตกต่างที่เกิดขึ้นใน branch พร้อมกับการรีวิว, คอมเมนต์, การทดสอบที่รวมอยู่ และอื่น ๆ PR ที่ดีควรปฏิบัติตามกฎเดียวกันกับ commit message คุณสามารถเพิ่มการอ้างอิงไปยัง issue ใน issue tracker ได้ เช่น เมื่อการทำงานของคุณแก้ไขปัญหาใดปัญหาหนึ่ง โดยใช้ `#` ตามด้วยหมายเลขของ issue เช่น `#97`
|
|
|
|
🤞หวังว่าการตรวจสอบทั้งหมดจะผ่านและเจ้าของโปรเจกต์จะ merge การเปลี่ยนแปลงของคุณเข้าไปในโปรเจกต์🤞
|
|
|
|
อัปเดต branch ที่คุณกำลังทำงานในเครื่องให้มี commit ใหม่ทั้งหมดจาก branch ที่เกี่ยวข้องบน GitHub:
|
|
|
|
`git pull`
|
|
|
|
## วิธีการมีส่วนร่วมในโอเพ่นซอร์ส
|
|
|
|
เริ่มต้นด้วยการค้นหา repository (หรือ **repo**) บน GitHub ที่คุณสนใจและต้องการมีส่วนร่วมในการเปลี่ยนแปลง คุณจะต้องคัดลอกเนื้อหาของ repo นั้นมายังเครื่องของคุณ
|
|
|
|
✅ วิธีที่ดีในการค้นหา repo ที่เหมาะสำหรับผู้เริ่มต้นคือ [ค้นหาด้วยแท็ก 'good-first-issue'](https://github.blog/2020-01-22-browse-good-first-issues-to-start-contributing-to-open-source/)
|
|
|
|

|
|
|
|
มีหลายวิธีในการคัดลอกโค้ด วิธีหนึ่งคือการ "clone" เนื้อหาของ repo โดยใช้ HTTPS, SSH หรือ GitHub CLI (Command Line Interface)
|
|
|
|
เปิด terminal และ clone repo ด้วยคำสั่งนี้:
|
|
`git clone https://github.com/ProjectURL`
|
|
|
|
เพื่อเริ่มทำงานในโปรเจกต์ ให้เปลี่ยนไปยังโฟลเดอร์ที่ถูกต้อง:
|
|
`cd ProjectURL`
|
|
|
|
คุณยังสามารถเปิดโปรเจกต์ทั้งหมดโดยใช้ [Codespaces](https://github.com/features/codespaces) ซึ่งเป็นตัวแก้ไขโค้ดในตัวของ GitHub / สภาพแวดล้อมการพัฒนาบนคลาวด์ หรือ [GitHub Desktop](https://desktop.github.com/)
|
|
|
|
สุดท้าย คุณสามารถดาวน์โหลดโค้ดในรูปแบบไฟล์ zip ได้
|
|
|
|
### สิ่งที่น่าสนใจเพิ่มเติมเกี่ยวกับ GitHub
|
|
|
|
คุณสามารถ star, watch และ/หรือ "fork" repo สาธารณะใด ๆ บน GitHub คุณสามารถค้นหา repo ที่คุณ star ได้ในเมนูดรอปดาวน์ด้านขวาบน มันเหมือนกับการบุ๊กมาร์ก แต่สำหรับโค้ด
|
|
|
|
โปรเจกต์มี issue tracker ซึ่งส่วนใหญ่จะอยู่ในแท็บ "Issues" บน GitHub เว้นแต่จะระบุไว้เป็นอย่างอื่น ที่นี่คือที่ที่ผู้คนพูดคุยเกี่ยวกับปัญหาที่เกี่ยวข้องกับโปรเจกต์ และแท็บ Pull Requests คือที่ที่ผู้คนพูดคุยและรีวิวการเปลี่ยนแปลงที่กำลังดำเนินการอยู่
|
|
|
|
โปรเจกต์อาจมีการพูดคุยในฟอรัม, รายการอีเมล หรือช่องแชท เช่น Slack, Discord หรือ IRC
|
|
|
|
✅ ลองสำรวจ repo ใหม่ของคุณบน GitHub และลองทำสิ่งต่าง ๆ เช่น แก้ไขการตั้งค่า, เพิ่มข้อมูลใน repo ของคุณ และสร้างโปรเจกต์ (เช่น Kanban board) มีหลายสิ่งที่คุณสามารถทำได้!
|
|
|
|
---
|
|
|
|
## 🚀 ความท้าทาย
|
|
|
|
จับคู่กับเพื่อนเพื่อทำงานร่วมกันในโค้ดของกันและกัน สร้างโปรเจกต์ร่วมกัน, fork โค้ด, สร้าง branch และ merge การเปลี่ยนแปลง
|
|
|
|
## แบบทดสอบหลังการบรรยาย
|
|
[แบบทดสอบหลังการบรรยาย](https://ff-quizzes.netlify.app/web/en/)
|
|
|
|
## การทบทวนและการศึกษาด้วยตนเอง
|
|
|
|
อ่านเพิ่มเติมเกี่ยวกับ [การมีส่วนร่วมในซอฟต์แวร์โอเพ่นซอร์ส](https://opensource.guide/how-to-contribute/#how-to-submit-a-contribution)
|
|
|
|
[Git cheatsheet](https://training.github.com/downloads/github-git-cheat-sheet/)
|
|
|
|
ฝึกฝน ฝึกฝน ฝึกฝน GitHub มีเส้นทางการเรียนรู้ที่ยอดเยี่ยมผ่าน [skills.github.com](https://skills.github.com):
|
|
|
|
- [First Week on GitHub](https://skills.github.com/#first-week-on-github)
|
|
|
|
คุณยังสามารถค้นหาคอร์สที่มีความซับซ้อนมากขึ้นได้อีกด้วย
|
|
|
|
## งานที่ได้รับมอบหมาย
|
|
|
|
ทำคอร์ส [First Week on GitHub](https://skills.github.com/#first-week-on-github) ให้เสร็จสิ้น
|
|
|
|
---
|
|
|
|
**ข้อจำกัดความรับผิดชอบ**:
|
|
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์ที่เป็นมืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้ |