หากคุณลบสคริปต์หรือโฟลเดอร์ภายในที่เก็บใน Earth Engine ตัวแก้ไขโค้ด โดยไม่ได้ตั้งใจ หรือต้องการย้ายข้อมูลที่เก็บไปยังบัญชีใหม่ ระบบจะเก็บประวัติการคอมมิตทั้งหมดไว้ในบันทึก Git บนเซิร์ฟเวอร์ของเรา แม้ว่าไอคอนที่เก็บ ในตัวแก้ไขโค้ดจะเปลี่ยนที่เก็บ ทั้งหมดกลับเป็นสถานะก่อนหน้า แต่การโคลนที่เก็บในเครื่องด้วย เครื่องมือบรรทัดคำสั่ง Git มาตรฐานจะช่วยให้คุณกู้คืนสคริปต์ หรือโฟลเดอร์แต่ละรายการได้โดยไม่สูญเสียการเปลี่ยนแปลงล่าสุดในสคริปต์อื่นๆ
สิ่งที่กู้คืนได้
ในแท็บสคริปต์ของตัวแก้ไขโค้ด ระบบจะจัดระเบียบงานของคุณเป็น
users/username/repository:folder/script
- สคริปต์และโฟลเดอร์ (กู้คืนได้): การลบสคริปต์หรือโฟลเดอร์ภายในที่เก็บจะนำรายการดังกล่าวออกจากคอมมิตล่าสุดเท่านั้น เนื่องจากที่เก็บ
ยังคงมีอยู่ใน
earthengine.googlesource.comคุณจึงโคลนที่เก็บ และกู้คืนไฟล์ที่ลบไปแล้วจากประวัติการคอมมิต Git โดยใช้ ตัวเลือก ก. หรือ ตัวเลือก ข. - ที่เก็บทั้งชุด (กู้คืนไม่ได้): การลบที่เก็บ
(
users/username/repository) จะนำที่เก็บ Git, สคริปต์ และประวัติการคอมมิตออกจากearthengine.googlesource.comอย่างถาวร (ส่งคืน"Repository is not found") เมื่อลบไปแล้ว คุณจะโคลนหรือกู้คืนที่เก็บไม่ได้
ก่อนอื่นให้ทําตามข้อกําหนดเบื้องต้นให้เสร็จสมบูรณ์ จากนั้นเลือกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้ตามงานของคุณ
- ตัวเลือก ก: กู้คืนสคริปต์ที่ลบไปแล้ว
- ตัวเลือก ข: กู้คืนโฟลเดอร์ที่ถูกลบ
- ตัวเลือก ค: ย้ายข้อมูลทั้งที่เก็บ
ข้อกำหนดเบื้องต้น
ขั้นตอนที่ 1: สร้างข้อมูลเข้าสู่ระบบ Git
เนื่องจากที่เก็บ Git ที่โฮสต์โดย Google ใช้การตรวจสอบสิทธิ์โทเค็นที่ปลอดภัย คุณจึงต้อง สร้างข้อมูลเข้าสู่ระบบ Git ในเครื่องก่อน
- เปิดหน้าต่างการเรียกดูแบบไม่ระบุตัวตนหรือส่วนตัวในเว็บเบราว์เซอร์ แล้ว ไปที่เครื่องมือสร้างรหัสผ่าน Git ที่ earthengine.googlesource.com/new-password (หมายเหตุ: ลงชื่อเข้าใช้ด้วยบัญชี Google ที่ลงทะเบียน Earth Engine เท่านั้น หากคุณย้ายข้อมูลที่เก็บไปยังบัญชีใหม่ในตัวเลือก ค. ให้แชร์ที่เก็บเก่ากับบัญชีใหม่ก่อน แล้วลงชื่อเข้าใช้ที่นี่ด้วยบัญชี Google ใหม่)
- คัดลอกบล็อกคำสั่งเชลล์ที่สร้างขึ้นทั้งหมดซึ่งแสดงบนหน้าจอ
- เปิดเทอร์มินัล (บรรทัดคำสั่ง) ในคอมพิวเตอร์ วางคำสั่งที่คัดลอกมา แล้วเรียกใช้ ซึ่งจะกำหนดค่าข้อมูลเข้าสู่ระบบคุกกี้ Git ของเครื่องโดยอัตโนมัติ
หากใช้ Git ในคอมพิวเตอร์เป็นครั้งแรก ให้กำหนดค่าชื่อและอีเมลของผู้เขียนเพื่อให้ Git อนุญาตให้คุณสร้างคอมมิตได้
git config --global user.name "Your Name" git config --global user.email "you@example.com"
ขั้นตอนที่ 2: โคลนที่เก็บ (ตัวเลือก A และ B)
หากคุณกำลังย้ายข้อมูลที่เก็บระหว่างบัญชี ให้ข้ามไปที่ตัวเลือก ค.
หากต้องการกู้คืนสคริปต์หรือโฟลเดอร์ที่ลบไปแล้ว ให้โคลนที่เก็บในเทอร์มินัลในเครื่องโดยแทนที่ username และ repository ด้วยรายละเอียด Earth Engine ของคุณ (คุณยังคัดลอกคำสั่งโคลนที่แน่นอนได้โดยคลิกไอคอน ข้างชื่อที่เก็บในแท็บสคริปต์)
git clone https://earthengine.googlesource.com/users/username/repository
เมื่อดำเนินการเสร็จแล้ว ให้ไปที่โฟลเดอร์ที่โคลน
cd repository
ตัวเลือกที่ 1: กู้คืนสคริปต์ที่ถูกลบ
วิธีกู้คืนไฟล์สคริปต์ที่ถูกลบ (เช่น MyScript หรือ
MyFolder/MyScript)
ดูประวัติของไฟล์เพื่อค้นหาคอมมิตการลบและคอมมิต ก่อนหน้าคอมมิตการลบ (แสดงอยู่หลังคอมมิตการลบในเอาต์พุตบันทึก):
git log --oneline -- "MyScript"กู้คืนเวอร์ชันล่าสุดที่ไฟล์ยังอยู่ในโฟลเดอร์ (แทนที่
<commit_hash>ด้วยแฮชของการคอมมิตก่อนการลบ หรือ ใช้<deletion_commit_hash>~1):git checkout <commit_hash> -- "MyScript"คอมมิตและพุชสคริปต์ที่กู้คืนกลับไปยังเซิร์ฟเวอร์
git commit -m "Restore MyScript from history" git push origin
เมื่อพุชแล้ว ให้โหลดแท็บสคริปต์ของตัวแก้ไขโค้ดในเบราว์เซอร์อีกครั้ง (หรือคลิกปุ่ม ที่ด้านบนของแท็บสคริปต์) เพื่อดูสคริปต์ที่กู้คืน
ตัวเลือก B: กู้คืนโฟลเดอร์ที่ถูกลบ
วิธีกู้คืนโฟลเดอร์ที่ถูกลบและสคริปต์ทั้งหมดภายในโฟลเดอร์ (เช่น
MyFolder/)
ตรวจสอบบันทึกการคอมมิต Git เพื่อค้นหาการคอมมิตการลบและการคอมมิต ก่อนหน้าการคอมมิตการลบ (แสดงอยู่หลังการคอมมิตการลบในเอาต์พุตบันทึก):
git log --oneline -- "MyFolder/"กู้คืนเวอร์ชันล่าสุดที่โฟลเดอร์ยังคงมีอยู่ไปยังโฟลเดอร์ของคุณ (แทนที่
<commit_hash>ด้วยแฮชของการคอมมิตก่อนการลบ หรือ ใช้<deletion_commit_hash>~1):git checkout <commit_hash> -- "MyFolder/"คอมมิตและพุชโฟลเดอร์ที่กู้คืนกลับไปยังเซิร์ฟเวอร์
git commit -m "Restore MyFolder and all its scripts" git push origin
เมื่อพุชแล้ว ให้โหลดแท็บสคริปต์ของตัวแก้ไขโค้ดในเบราว์เซอร์อีกครั้ง (หรือคลิกปุ่ม ที่ด้านบนของแท็บสคริปต์) เพื่อดูโฟลเดอร์ที่กู้คืน
ตัวเลือก ค: ย้ายข้อมูลทั้งที่เก็บ
หากต้องการย้ายข้อมูลทั้งที่เก็บและประวัติการคอมมิตทั้งหมดไปยัง บัญชีใหม่ (เช่น เมื่อเปลี่ยนจากบัญชีของสถาบันเป็นบัญชีส่วนตัว ) ให้ทำดังนี้
ข้อมูลเข้าสู่ระบบและสิทธิ์: หากคุณย้ายข้อมูลที่เก็บระหว่างบัญชี Google ที่แตกต่างกัน 2 บัญชี (เช่น จากบัญชีมหาวิทยาลัยหรือบัญชีงานไปยังบัญชีส่วนตัว) คุณต้องตรวจสอบว่าบัญชีใหม่มีสิทธิ์อ่านที่เก็บเก่าก่อนที่จะเริ่ม
- ข้อกำหนดเบื้องต้นในการแชร์: ลงชื่อเข้าใช้บัญชีเก่าของตัวแก้ไขโค้ด คลิกไอคอน ข้างชื่อที่เก็บเก่า แล้วแชร์กับอีเมลของบัญชี Google ใหม่ โดยให้สิทธิ์เข้าถึงระดับผู้อ่าน
- การทำเช่นนี้จะทำให้คุณต้องตรวจสอบสิทธิ์ในคอมพิวเตอร์เครื่องที่ใช้ ครั้งเดียว (โดยใช้ข้อมูลเข้าสู่ระบบ Git ของบัญชีใหม่ที่สร้างขึ้นใน ขั้นตอนที่ 1) บัญชีใหม่จะมีสิทธิ์ทั้งโคลนจากที่เก็บเก่าและพุชไปยังที่เก็บใหม่ เพื่อหลีกเลี่ยงความขัดแย้งของข้อมูลเข้าสู่ระบบ
โคลนที่เก็บเก่าในเครื่องโดยใช้ Git มาตรฐาน
git clone https://earthengine.googlesource.com/users/old_username/old_repositoryสร้างที่เก็บข้อมูลใหม่ที่ว่างเปล่าจากเมนูใหม่ > ที่เก็บข้อมูลในบัญชีตัวแก้ไขโค้ดใหม่ (หมายเหตุ: อย่าสร้างหรือบันทึกสคริปต์หรือโฟลเดอร์ใดๆ ในที่เก็บใหม่ก่อนที่จะพุช ไม่เช่นนั้นการพุชจะล้มเหลว)
ไปยังไดเรกทอรีที่โคลนในเครื่อง
cd old_repositoryพุชประวัติการคอมมิตและสคริปต์ทั้งหมดในเครื่องไปยังที่เก็บ Earth Engine ใหม่ที่ว่างเปล่าโดยตรง
git push https://earthengine.googlesource.com/users/new_username/new_repository --all
เมื่อพุชแล้ว ให้โหลดแท็บสคริปต์ในตัวแก้ไขโค้ดของบัญชีใหม่ซ้ำ (หรือคลิกปุ่ม ) เพื่อดูที่เก็บและประวัติที่ย้ายข้อมูล