เพิ่มรีโปในเวิร์กสเปซ
คู่มือนี้แสดงวิธีลงทะเบียนเช็กเอาต์ Git เข้าเวิร์กสเปซ จัดทำดัชนีใหม่ และลบมันออกอีกครั้ง
รีโปมีขอบเขตอยู่ที่เวิร์กสเปซ ไม่มีทะเบียนส่วนกลางและไม่มีขั้นตอนเชื่อมโยงใด ๆ การเพิ่มรีโปกับการใส่รีโปเข้าเวิร์กสเปซคือการกระทำเดียวกัน เช็กเอาต์เดียวกันที่ลงทะเบียนในสองเวิร์กสเปซจะกลายเป็นสองแถวอิสระที่มี id ต่างกันสองค่า — เมื่อข้ามเวิร์กสเปซแล้ว ตัวตนของรีโปคือพาธในระบบไฟล์ของมัน ไม่ใช่ id ของมันเลย
ก่อนที่คุณจะเริ่ม
หัวข้อที่มีชื่อว่า “ก่อนที่คุณจะเริ่ม”โฟลเดอร์จะลงทะเบียนได้ก็ต่อเมื่อเข้าเงื่อนไขทั้งสามข้อนี้พร้อมกัน:
- อยู่ภายใน git work tree
- work tree นั้นมี remote
origin - remote
originชี้ไปที่ โฮสต์โค้ดที่รองรับ: github.com, gitlab.com หรือ bitbucket.org
สิ่งอื่นใดจะถูกปฏิเสธตอนลงทะเบียนพร้อมข้อความที่ชัดเจน: “Folder is not inside a git work tree.”, “No origin remote configured for this repository.” หรือ “The origin remote is not hosted on a supported forge (github.com, gitlab.com, bitbucket.org).” ไม่มีโหมดที่ทำงานในเครื่องเท่านั้น
โฮสต์โค้ดถูกอ่านจาก remote และเก็บไว้บนรีโป — คุณไม่เคยต้องเลือกมันเอง เวิร์กสเปซหนึ่งแห่งเก็บรีโปจากทั้งสามแห่งพร้อมกันได้ และแต่ละแห่งจะถูกสื่อสารผ่าน API ของตัวเองด้วยข้อมูลรับรองของตัวเอง เนมสเปซซ้อนกันของ GitLab จะถูกเก็บไว้ ดังนั้น gitlab.com/group/subgroup/project จึงลงทะเบียนด้วย owner group/subgroup และ name project
โฟลเดอร์ยังต้องอยู่บนเครื่องที่โฮสต์ cc_server ภายในไดเรกทอรี --repo-roots ตัวใดตัวหนึ่งของเซิร์ฟเวอร์นั้นด้วย รายการที่อนุญาตนี้มีค่าเริ่มต้นเป็นโฮมไดเรกทอรีของผู้ใช้เซิร์ฟเวอร์ และการเรียกดูเหนือรากขึ้นไปจะถูกปฏิเสธ
ลงทะเบียนเช็กเอาต์
หัวข้อที่มีชื่อว่า “ลงทะเบียนเช็กเอาต์”- เปิด การตั้งค่า → เวิร์กสเปซ → รีโพสิทอรี (
/workspaces/<id>/settings/workspace/repositories) - คลิก เพิ่มรีโพสิทอรี
ไดอะล็อกนี้เป็นเบราว์เซอร์ที่เรียกดูได้บนระบบไฟล์ของเซิร์ฟเวอร์ ไม่ใช่ของคุณ ขั้นตอนเดียวกันทั้งบนเดสก์ท็อป เว็บ และโทรศัพท์ เพราะตัวเลือกโฟลเดอร์แบบเนทีฟจะเลือกโฟลเดอร์บนเครื่องผิดเครื่อง
- เรียกดูภายในรากที่กำหนดค่าไว้ของเซิร์ฟเวอร์ โฟลเดอร์ที่เป็นเช็กเอาต์ git จะถูกทำเครื่องหมายไว้
- เลือกได้ตามจำนวนที่ต้องการ และการเลือกจะคงอยู่แม้คุณจะเรียกดูต่อไป คุณจึงรวบรวมเช็กเอาต์จากหลายโฟลเดอร์ได้
- ลงทะเบียนทั้งหมดในคราวเดียว
การเลือกที่ล้มเหลวหนึ่งรายการไม่เคยทำให้ส่วนที่เหลือของชุดหลุดไป — คุณจะได้ id ที่ถูกสร้างขึ้น บวกกับข้อผิดพลาดรายพาธสำหรับแต่ละรายการที่ถูกปฏิเสธ การลงทะเบียนพาธที่อยู่ในเวิร์กสเปซนี้อยู่แล้วซ้ำจะคืนรีโปที่มีอยู่แล้ว แทนที่จะสร้างรายการซ้ำขึ้นใหม่
รีโปที่ลงทะเบียนแต่ละรายการจะปรากฏในรายการพร้อม owner/name ป้ายชื่อที่บอกโฮสต์โค้ดของมัน และพาธของมันบนเซิร์ฟเวอร์ รีโป GitHub ยังแสดงอวตารของเจ้าของด้วย ส่วนโฮสต์โค้ดอื่นไม่มี URL อวตารของเจ้าของที่เดาได้ จึงถอยกลับไปใช้อักษรย่อ
ป้ายโฮสต์โค้ดสำคัญในเวิร์กสเปซแบบผสม: รีโปสองรายการอาจชื่อ acme/web เหมือนกันบนโฮสต์โค้ดต่างกัน และมันทำงานต่างกัน — รีวิวทำอะไรได้ และลิงก์จะพาไปที่ไหน
สิ่งที่เกิดขึ้นต่อไป
หัวข้อที่มีชื่อว่า “สิ่งที่เกิดขึ้นต่อไป”การลงทะเบียนจะยิงเหตุการณ์ RepoAdded ที่มีขอบเขตอยู่ที่เวิร์กสเปซนี้ ซึ่งจะเริ่มไปป์ไลน์ index_code สำหรับเช็กเอาต์นั้น นั่นคือสิ่งที่เติมข้อมูลให้กราฟโค้ด การค้นหาและการวิเคราะห์ผลกระทบจึงมีอะไรให้ตอบ
เฉพาะไฟล์ที่ภาษาของมันมีไวยากรณ์ที่จัดส่งมาด้วยเท่านั้นที่จะถูกจัดทำดัชนี (Dart, JavaScript, TypeScript, TSX, PHP, Python, Rust, Zig, C, C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB และ Ada) ดูค้นหาโค้ดด้วยกราฟโค้ด
จัดทำดัชนีรีโปใหม่
หัวข้อที่มีชื่อว่า “จัดทำดัชนีรีโปใหม่”แต่ละแถวมีปุ่ม จัดทำดัชนีโค้ด คลิกเพื่อรันตัวจัดทำดัชนีซ้ำสำหรับเช็กเอาต์นั้น ระหว่างที่มันรัน ปุ่มจะกลายเป็นตัวแสดงความคืบหน้าที่บอกจำนวนไฟล์ที่ทำเสร็จเทียบกับทั้งหมด พร้อมตัวควบคุมการยกเลิก เมื่อเสร็จ มันจะหยุดนิ่งเป็นเครื่องหมายถูกพร้อมจำนวนสัญลักษณ์ หรือเป็นคำเตือนหากการรันล้มเหลว
จัดลำดับรีโปใหม่
หัวข้อที่มีชื่อว่า “จัดลำดับรีโปใหม่”ลากที่จับบนแถว ลำดับที่คุณตั้งไว้คือลำดับที่รายการรีโปทุกแห่งในแอปอ่านกลับมา
แก้ไขลิงก์ GitHub
หัวข้อที่มีชื่อว่า “แก้ไขลิงก์ GitHub”ไอคอนลิงก์บนแถวจะเปิดตัวแก้ไข owner และชื่อรีโพสิทอรีของ GitHub ของรีโป — มีประโยชน์เมื่อ remote ถูกเปลี่ยนชื่อหรือถูกโอนย้าย
- เปิด การตั้งค่า → เวิร์กสเปซ → รีโพสิทอรี
- คลิกไอคอนถังขยะบนแถว
- ยืนยัน “ลบรีโพสิทอรีออกจากเวิร์กสเปซหรือไม่?”
ไดอะล็อกบอกว่ามันทำอะไร: “name จะถูกลบออกจากเวิร์กสเปซนี้ ไฟล์ในเครื่องบนดิสก์จะไม่ถูกแตะต้อง”
การลบจะลบแถวรีโปออกจากเวิร์กสเปซนี้ และลบแถวกราฟโค้ดของมันตามไปเป็นทอด — สัญลักษณ์ เส้นเชื่อม ไฟล์ และจุดตรวจสอบการจัดทำดัชนี — รวมถึงสิทธิ์รีโปต่อสมาชิกแต่ละคนบนมัน ลิงก์สเปซ-รีโปของมัน และบันทึกเช็กเอาต์แบบแยกโดดของมัน เช็กเอาต์เดียวกันที่ลงทะเบียนในเวิร์กสเปซอื่นเป็นแถวอิสระและไม่ได้รับผลกระทบ worktree บนดิสก์ที่บันทึกเหล่านั้นชี้ไปจะไม่ถูกรื้อถอนโดยการลบนี้