ข้อมูลสําคัญของ Git และ GitHub สําหรับเอกสารประกอบ Microsoft Learn
ภาพรวม
ในฐานะผู้ร่วมสร้างเอกสาร Microsoft Learn คุณจะโต้ตอบกับเครื่องมือและกระบวนการหลายอย่าง คุณจะทำงานควบคู่ไปกับผู้ร่วมสร้างเอกสารคนอื่นๆ ในโครงการเดียวกันซึ่งอาจเป็นเนื้อหาเดียวกันและในเวลาเดียวกัน สามารถทำทั้งหมดนี้ได้ด้วยซอฟต์แวร์ Git และ GitHub
Git เป็นระบบควบคุมเวอร์ชันโอเพนซอร์ส Git ช่วยอำนวยความสะดวกในการทำงานโครงการร่วมกันผ่าน ตัวควบคุมเวอร์ชันกระจาย ของไฟล์ที่อยู่ใน พื้นที่เก็บข้อมูล ซึ่งหมายความว่า Git ทำให้สามารถรวมสตรีมของงานต่างๆ ที่มีผู้ร่วมทำหลายคนในช่วงเวลาหนึ่งสำหรับที่เก็บข้อมูลหนึ่งๆ
GitHub เป็นบริการโฮสต์พื้นที่เก็บ Git บนเว็บ เช่น พื้นที่เก็บเนื้อหา Microsoft Learn สำหรับทุกโครงการ GitHub โฮสต์ที่เก็บข้อมูลหลัก ซึ่งผู้ร่วมทำงานสามารถทำสำเนางานของตนเองได้จากที่นี่
บทความนี้กําหนดคําสําคัญที่เป็นส่วนหนึ่งของเวิร์กโฟลว์ Microsoft Learn นอกจากนี้ยังให้ภาพรวมของที่เก็บ Git และ GitHub และอธิบายวิธีการจัดระเบียบเนื้อหาสําหรับเอกสารทางเทคนิคของ Microsoft
สาขา
สาขาแยกสตรีมของงาน (โดยทั่วไปจะเรียกว่าเวอร์ชัน) จะมีการจัดใส่ข้อมูลและจัดขอบเขตในสาขาหนึ่งๆ
การเปลี่ยนแปลงที่เกี่ยวข้องกับการแยกไปยังสาขาที่เฉพาะเจาะจงช่วยให้คุณสามารถควบคุมและแนะนําการเปลี่ยนแปลงเหล่านั้นได้อย่างอิสระ ในความเป็นจริงขึ้นอยู่กับชนิดของงานที่คุณทำ คุณสามารถลงเอยกับหลายสาขาการทำงานได้อย่างง่ายดายในที่เก็บของคุณ ไม่ใช่เรื่องที่พบเห็นได้ทั่วไปที่จะทำงานบนหลายสาขาพร้อมๆ กัน ซึ่งแต่ละสาขาแสดงถึงโครงการที่แตกต่างกัน
ที่เก็บทั้งหมดประกอบด้วยสาขาเริ่มต้น (โดยทั่วไปจะมีชื่อว่า "หลัก") และสาขาที่กําลังดําเนินการอย่างน้อยหนึ่งสาขา (ซึ่งเราเรียกว่าสาขาที่ทํางาน) ที่ยังไม่ได้รวมเข้ากับสาขาเริ่มต้น สาขาเริ่มต้นทําหน้าที่เป็นเวอร์ชันปัจจุบันและเป็น "แหล่งความจริงเพียงแหล่งเดียว" สําหรับโครงการ สาขาหลักเป็นตัวแม่ที่สร้างสาขาอื่นๆ ทั้งหมดในที่เก็บ
ทุกครั้งที่คุณนําชุดของการเปลี่ยนแปลงที่เกี่ยวข้องกันตามตรรกะใหม่ เป็นแนวทางปฏิบัติในการสร้างสาขาการทํางานเพื่อจัดการการเปลี่ยนแปลงของคุณ เราไม่แนะนําให้ทําการเปลี่ยนแปลงในสาขาเริ่มต้นโดยตรง
Fork
คําศัพท์นี้มักใช้เป็นคํานามเมื่ออ้างถึงสําเนาของที่เก็บ GitHub หลัก ในทางปฏิบัติ สำเนาคือที่เก็บอีกที่หนึ่ง แต่มีความพิเศษในแง่ที่ว่า GitHub รักษาการเชื่อมต่อกลับไปยังที่เก็บหลัก/แม่ คํานี้บางครั้งใช้เป็นคํากริยาดังเช่น "คุณต้องสําเนาที่เก็บข้อมูลก่อน"
Git
ถ้าคุณคุ้นเคยกับระบบควบคุมแบบรวมศูนย์ (เช่น Team Foundation Server, SharePoint หรือ Visual Source ตู้เซฟ) คุณจะพบว่า Git มีเวิร์กโฟลว์และคําศัพท์การทํางานร่วมกันที่เป็นเอกเทศเพื่อสนับสนุนรูปแบบการกระจายเนื้อหา ตัวอย่างเช่น ไม่มีการล็อคไฟล์ที่มักเกี่ยวข้องกับการดําเนินการเช็คเอาท์/เช็คอิน แต่ Git มีความกังวลเกี่ยวกับการเปลี่ยนแปลงในระดับที่ดีกว่าเมื่อเปรียบเทียบไฟล์ทีละไบต์
Git ยังใช้โครงสร้างแบบชั้นพื่อจัดเก็บและจัดการเนื้อหาสำหรับโครงการ:
- พื้นที่เก็บ: หรือที่เรียกว่า repo ซึ่งเป็นหน่วยสูงสุดของการเก็บข้อมูล ที่เก็บประกอบด้วยสาขาหนึ่งสาขาหรือมากกว่า
- สาขา: หน่วยเก็บข้อมูลที่ประกอบด้วยไฟล์และไฟล์ที่สร้างชุดเนื้อหาของโครงการ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับสาขา ดูหัวข้อ สาขา ของบทความนี้
ผู้ร่วมสร้างข้อมูลในโครงการจะทำการโต้ตอบกับ Git เพื่อปรับปรุงและจัดการพื้นที่เก็บในระดับท้องถิ่นและระดับ GitHub
- โดยใช้เครื่องมือต่างๆ เช่น คอนโซล Git Bash ซึ่งสนับสนุนคำสั่ง Git เพื่อจัดการพื้นที่เก็บข้อมูลภายในเครื่อง และติดต่อสื่อสารกับพื้นที่เก็บข้อมูล GitHub
- ผ่านทาง www.github.com ที่มี Git ทำหน้าที่จัดการการรวบรวมการนำเสนอข้อมูลที่ไหลกลับเข้าไปในที่เก็บหลัก
GitHub
หมายเหตุ
แม้ว่าคําแนะนําเอกสารจะยึดตามการใช้ GitHub แต่บางทีมใช้บริการของ Visual Studio Team เพื่อโฮสต์พื้นที่เก็บ Git ไคลเอนต์ของ Visual Studio Team Explorer มี GUI สำหรับการโต้ตอบกับพื้นที่เก็บบริการของ Team ในฐานะเป็นทางเลือกแทนการใช้คำสั่ง Git ทางบรรทัดคำสั่ง
นอกจากนี้ ยังมีอีกหลายแนวทางต่อไปนี้ที่จัดทําจากประสบการณ์หลายปีในการโฮสต์เนื้อหาบริการ Azure ใน GitHub อาจจําเป็นต้องใช้แหล่งข้อมูลเหล่านี้ในที่เก็บข้อมูล Microsoft Learn บางรายการ
เวิร์กโฟลว์ทั้งหมดเริ่มต้นและสิ้นสุดที่ระดับ GitHub ซึ่งเป็นที่เก็บหลักสําหรับโครงการเอกสารใดๆ ก็ตาม สำเนาที่ผู้ร่วมโครงการสร้างเพื่อใช้งานของตนเองกระจายไปในคอมพิวเตอร์หลายเครื่อง สำเนาเหล่านี้จะถูกส่งกลับเข้าไปในที่เก็บ GitHub หลักของโครงการในที่สุด
ไดเรกทอรีองค์กร
สาขาเริ่มต้นของโครงการทําหน้าที่เป็นเวอร์ชันปัจจุบันของเนื้อหาสําหรับโครงการ เนื้อหาในสาขาเริ่มต้นและสาขาที่สร้างขึ้นจากสาขานั้น จะถูกจัดตําแหน่งอย่างหลวม ๆ กับองค์กรของบทความบนหน้า Microsoft Learn ที่สอดคล้องกัน ไดเรกทอรีย่อยจะถูกใช้เพื่อแยกกัน เช่น บทความ (เช่น บริการ) เนื้อหาสื่อ (เช่น ไฟล์รูปภาพ) และไฟล์ "รวม" (ซึ่งทําให้ใช้เนื้อหาซ้ําได้)
ไดเรกทอรีย่อยของบทความ
โดยทั่วไป คุณสามารถค้นหา articles
ไดเรกทอรี่หลักจากรากของที่เก็บ ไดเรกทอรีarticles
ประกอบด้วยชุดของบทความของไดเรกทอรีย่อยในไดเรกทอรีย่อยถูกจัดรูปแบบเป็นไฟล์ Markdown ที่ใช้นามสกุล .md พื้นที่เก็บบางอย่างซึ่งสนับสนุนบริการหลายอย่างใช้ /articles
ไดเรกทอรีย่อยทั่วไป เช่น ที่เก็บ Azure-Docs พื้นที่เก็บบางอย่างอาจใช้ชื่อบริการเฉพาะ เช่น ที่เก็บ IntuneDocs ซึ่งใช้ /IntuneDocs
ภายในรากของไดเรกทอรีนี้ คุณสามารถค้นหาบทความทั่วไปที่เกี่ยวข้องกับบริการหรือผลิตภัณฑ์โดยรวม และโดยทั่วไปแล้ว คุณจะพบชุดไดเร็กทอรีย่อยอื่นๆ ที่ตรงกับคุณลักษณะ/บริการหรือสถานการณ์ทั่วไป ตัวอย่างเช่น บทความ "เครื่องเสมือน" Azure อยู่ใน /virtual-machines
ไดเรกทอรีย่อยและบทความ "เข้าใจและสำรวจ" ของ Intune อยู่ใน /understand-explore
ไดเรกทอรีย่อย
ไดเรกทอรีย่อยของสื่อ
แต่ละไดเร็กทอรีบทความประกอบด้วยไดเรกทอรีย่อย/media
สำหรับไฟล์สื่อที่เกี่ยวข้อง ไฟล์สื่อที่ประกอบด้วยรูปที่บทความใช้โดยอ้างอิงถึงรูปนั้น
รวมไดเรกทอรีย่อย
เมื่อใดก็ตามที่เรามีเนื้อหาที่นำมาใช้ซ้ำได้ซึ่งใช้ร่วมกันในบทความสองชิ้นหรือมากกว่า เนื้อหานี้จะอยู่ใน/includes
ไดเรกทอรีย่อยจากไดเรกทอรีหลัก articles
ในไฟล์ Markdown ที่ใช้ไฟล์รวมส่วนขยาย Markdown "รวม" ที่เกี่ยวข้องจะอยู่ในตำแหน่งที่อ้างถึงไฟล์ "รวม" นั้น
ดู การอ้างอิง Markdown: รวม สําหรับคําแนะนําเพิ่มเติม
เท็มเพลตไฟล์ Markdown
เพื่อความสะดวก ไดเรกทอรีรากของที่เก็บแต่ละแห่งมักมีไฟล์เทมเพลต Markdown ชื่อ template.md
คุณสามารถใช้ไฟล์เทมเพลตนี้เป็น "ไฟล์เริ่มต้น" หากต้องการสร้างบทความใหม่เพื่อส่งไปยังที่เก็บ ไฟล์ประกอบด้วย:
- ส่วนหัวของเมตาดาต้า ที่ด้านบนของไฟล์ซึ่งมีตัวขีดกลาง 3 ตัวที่ถูกขีดเส้นใต้สองเส้น ส่วนหัวนี้ประกอบด้วยแท็กต่างๆ ที่ใช้ในการติดตามข้อมูลที่เกี่ยวข้องกับบทความ เมตาดาต้าของบทความทำให้ใช้งานฟังก์ชันบางอย่าง เช่น การระบุแหล่งที่มาของผู้เขียน การระบุแหล่งที่มาผู้ร่วมสร้างโครงการ และคำอธิบายบทความ นอกจากนี้ ยังรวมถึงการเพิ่มประสิทธิภาพ SEO และกระบวนการรายงานที่ Microsoft ใช้เพื่อประเมินประสิทธิภาพของเนื้อหา ดังนั้น เมตาดาต้าจึงเป็นสิ่งสำคัญ
- ส่วนเมตาดาต้า ที่อธิบายแท็กและค่าเมตาดาต้าต่างๆ ถ้าคุณไม่แน่ใจว่าควรใช้ค่าใดในส่วนเมตาดาต้า คุณสามารถปล่อยว่างไว้ หรือแสดงข้อคิดเห็นโดยวางแฮชแท็ก (#) ข้างหน้า และค่านั้นจะถูกตรวจทาน/กรอกให้สมบูรณ์โดยผู้ตรวจทานคำขอดึงข้อมูลสำหรับที่เก็บ
- ตัวอย่างต่างๆ ของการใช้ Markdown เพื่อจัดรูปแบบ elements ของบทความ
- คำแนะนำเกี่ยวกับการใช้ส่วนขยาย Markdown ซึ่งคุณสามารถใช้สำหรับการแจ้งเตือนชนิดต่างๆ
- ตัวอย่างของฝังวิดีโอโดยใช้ iframe
- คําแนะนําเกี่ยวกับ การใช้ส่วนขยายเอกสารทางเทคนิคของ Microsoft ซึ่งคุณสามารถใช้สําหรับการควบคุมพิเศษ เช่น ปุ่มและตัวเลือก
ที่มา
คําศัพท์นี้คือชื่อที่กําหนดให้กับการเชื่อมต่อระหว่างที่เก็บภายในเครื่องของคุณและที่เก็บข้อมูลที่ถูกลอกแบบขึ้น ในเวิร์กโฟลว์ Microsoft Learn จุดเริ่มต้นจะแสดงถึงการเชื่อมต่อกับทางสปอตของคุณ คําศัพท์นี้บางครั้งใช้เป็นมอนิเกอร์แบบสําหรับที่เก็บจุดเริ่มต้นของตัวเอง เช่นใน "จําเพื่อผลักการเปลี่ยนแปลงของคุณไปยังจุดเริ่มต้น"
คำขอดึงข้อมูล
คําขอดึงข้อมูล (PR) เป็นคําขอให้เจ้าของเนื้อหาดึงการเปลี่ยนแปลงของคุณลงในแหล่งข้อมูลอย่างเป็นทางการ PR เปิดใช้งานแบบจําลองการทํางานร่วมกันของ GitHub โดยการขอการเปลี่ยนแปลง (หรือที่เรียกว่า ยืนยัน) จากสาขาการทํางานของคุณเพื่อดึงและรวมเข้ากับสาขาอื่น ในกรณีส่วนใหญ่ สาขาอื่นคือสาขาเริ่มต้นในที่เก็บหลัก
PR ยังทําหน้าที่เป็นกลไกเพื่อให้คําติชมจากกระบวนการตรวจสอบความถูกต้องของ Microsoft Learn และผู้ตรวจทาน PR เพื่อแก้ไขปัญหาหรือคําถามก่อนที่จะรวมการเปลี่ยนแปลงลงในสาขาเริ่มต้น
ระยะ ไกล
ระยะไกลคือการเชื่อมต่อไปยังที่เก็บระยะไกลที่ตั้งชื่อ เช่น "จุดเริ่มต้น" หรือ "อัพสตรีม" ระยะไกล Git อ้างอิงสิ่งนี้ว่าเป็นระยะไกลเนื่องจากใช้เพื่ออ้างอิงที่เก็บที่โฮสต์บนคอมพิวเตอร์เครื่องอื่น ในเวิร์กโฟลว์ Microsoft Learn ระยะไกลคือที่เก็บ GitHub เสมอ
อัพสตรีม
เช่นเดียวกับจุดเริ่มต้นระยะไกล อัพสตรีม คือการเชื่อมต่อไปยังที่เก็บอื่นที่ตั้งชื่อ ในเวิร์กโฟลว์ Microsoft Learn อัพสตรีมแสดงถึงการเชื่อมต่อระหว่างที่เก็บภายในเครื่องของคุณและที่เก็บหลักที่ใช้สร้างส้อมเอกสารของคุณ คํานี้บางครั้งใช้เป็นมอนิเกอร์แบบสําหรับที่เก็บอัพสตรีมของตัวเอง เช่นใน "จําเพื่อดึงการเปลี่ยนแปลงล่าสุดจากอัพสตรีม"
เรียนรู้เพิ่มเติม
ถ้าคุณไม่คุ้นเคยกับ Git หรือ GitHub ทรัพยากรเหล่านี้สามารถช่วยให้คุณเรียนรู้ มีประสิทธิภาพ หรือตอบคําถาม
ทรัพยากรตัวควบคุมแหล่งข้อมูล Git
- E-book ของ Pro Git (เว็บ): การอ้างอิง Git อย่างละเอียดในรูปแบบ HTML
- E-book ของ Pro Git (PDF): เหมือนกับการเชื่อมโยงก่อนหน้า ในแบบฟอร์ม PDF
- เรียนรู้หลักสูตร Git จาก Codecademy
- ลองหลักสูตร Git จาก Code School บน Pluralsight
ทรัพยากร GitHub
- GitHub สวัสดี ทุกท่านแบบฝึกหัดการเริ่มต้นใช้งานด่วน: บทช่วยสอนออนไลน์ที่แสดงให้คุณทราบถึงพื้นฐานของ Git โดยใช้ GitHub
- คำแนะนำ GitHub: บ้านของเอกสารประกอบ GitHub
- ทรัพยากรการเรียนรู้ GitHub: ทรัพยากร GitHub ที่มีประโยชน์อื่นๆ
- อภิธานศัพท์: อภิธานศัพท์ที่มีประโยชน์ของคําศัพท์ Git และ GitHub
- ชุดนักพัฒนาซอฟต์แวร์สําหรับนักเรียน GitHub: การเข้าถึงเครื่องมือสําหรับนักพัฒนาซอฟต์แวร์ที่ดีที่สุดสําหรับนักเรียนฟรี
คำถามที่ถามบ่อย
กิตคืออะไร?
Git ช่วยติดตามการเปลี่ยนแปลงเมื่อมีคนจํานวนมากทํางานร่วมกันในรหัสคอมพิวเตอร์ มันเหมือนเครื่องเวลาสําหรับรหัส ดังนั้นคุณสามารถดูสิ่งที่เปลี่ยนแปลง และกลับไปถ้าจําเป็น
เหตุใดจึงใช้ Git
ซึ่งยอดเยี่ยมสําหรับการทํางานเป็นทีม Git ทําให้ง่ายสําหรับหลายคนที่จะทํางานในโครงการเดียวกันโดยไม่ยุ่งเหงางานของกันและกัน นอกจากนี้ยังช่วยแก้ไขข้อผิดพลาดได้อย่างง่ายดาย
Git ทํางานอย่างไร
Git จัดเก็บโค้ดของโครงการทุกเวอร์ชัน เมื่อคุณทําการเปลี่ยนแปลง Git จะถ่ายภาพ (เช่น สแนปช็อต) ว่าสิ่งที่แตกต่างกันอย่างไร คุณสามารถทําเวอร์ชันต่าง ๆ ได้ในเวลาเดียวกันโดยไม่มีปัญหา
สาขาใน Git คืออะไร
สาขาต่าง ๆ จะเหมือนกับเส้นทางที่แตกต่างกันในโครงการ พวกเขาช่วยให้ผู้คนทํางานกับสิ่งใหม่ ๆ โดยไม่เปลี่ยนแปลงโครงการหลัก ต่อมา พวกเขาสามารถนําการเปลี่ยนแปลงเหล่านี้กลับไปยังโครงการหลักได้
การยอมรับใน Git คืออะไร
การยอมรับจะเหมือนกับจุดบันทึก ซึ่งเป็นวิธีบันทึกการเปลี่ยนแปลงที่คุณทําไว้ แต่ละการยอมรับมี ID ที่ไม่ซ้ํากันและบันทึกย่อเกี่ยวกับสิ่งที่มีการเปลี่ยนแปลง
GitHub คืออะไร
GitHub คือ เว็บไซต์ที่คุณสามารถจัดเก็บโครงการ Git ของคุณ มันเหมือนเป็นฮับขนาดใหญ่สําหรับการแชร์และทํางานร่วมกันบนโค้ดกับผู้อื่น นอกจากนี้ยังช่วยในการติดตามว่าใครทําการเปลี่ยนแปลงอะไร
GitHub แตกต่างจาก Git อย่างไร?
Git เป็นเครื่องมือสําหรับการติดตามการเปลี่ยนแปลง ในขณะที่ GitHub เป็นที่สําหรับจัดเก็บโครงการของคุณและทํางานร่วมกัน GitHub ใช้ Git เพื่อทําเวทมนตร์
GitHub ฟรีหรือไม่
ใช่ สําหรับโครงการที่ทุกคนสามารถดูได้ แต่สําหรับโครงการส่วนตัว (เฉพาะคุณและทีมของคุณ) คุณอาจต้องชําระเงิน พวกเขาเสนอแผนที่แตกต่างกันด้วยคุณสมบัติพิเศษ
คําขอดึงข้อมูลใน GitHub คืออะไร
คําขอดึงข้อมูลเหมือนกับการขอให้คุณใส่การเปลี่ยนแปลงของคุณในโครงการหลัก ผู้ใช้สามารถตรวจทานและพูดคุยเกี่ยวกับการเปลี่ยนแปลงก่อนที่จะถูกเพิ่มได้
GitHub ปลอดภัยแค่ไหน?
GitHub ดูแลความปลอดภัยเป็นอย่างดี พวกเขาใช้รหัสและกฎพิเศษเพื่อให้แน่ใจว่าเฉพาะบุคคลที่เหมาะสมเท่านั้นที่สามารถเข้าถึงและเปลี่ยนรหัสของคุณ คุณยังสามารถเพิ่มเลเยอร์ความปลอดภัยเพิ่มเติม เช่น การรับรองความถูกต้องแบบสองปัจจัยเพื่อความปลอดภัยที่มากขึ้น