การกู้คืนสคริปต์และการย้ายข้อมูลที่เก็บ

หากคุณลบสคริปต์หรือโฟลเดอร์ภายในที่เก็บใน 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 ในเครื่องก่อน

  1. เปิดหน้าต่างการเรียกดูแบบไม่ระบุตัวตนหรือส่วนตัวในเว็บเบราว์เซอร์ แล้ว ไปที่เครื่องมือสร้างรหัสผ่าน Git ที่ earthengine.googlesource.com/new-password (หมายเหตุ: ลงชื่อเข้าใช้ด้วยบัญชี Google ที่ลงทะเบียน Earth Engine เท่านั้น หากคุณย้ายข้อมูลที่เก็บไปยังบัญชีใหม่ในตัวเลือก ค. ให้แชร์ที่เก็บเก่ากับบัญชีใหม่ก่อน แล้วลงชื่อเข้าใช้ที่นี่ด้วยบัญชี Google ใหม่)
  2. คัดลอกบล็อกคำสั่งเชลล์ที่สร้างขึ้นทั้งหมดซึ่งแสดงบนหน้าจอ
  3. เปิดเทอร์มินัล (บรรทัดคำสั่ง) ในคอมพิวเตอร์ วางคำสั่งที่คัดลอกมา แล้วเรียกใช้ ซึ่งจะกำหนดค่าข้อมูลเข้าสู่ระบบคุกกี้ Git ของเครื่องโดยอัตโนมัติ
  4. หากใช้ 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)

  1. ดูประวัติของไฟล์เพื่อค้นหาคอมมิตการลบและคอมมิต ก่อนหน้าคอมมิตการลบ (แสดงอยู่หลังคอมมิตการลบในเอาต์พุตบันทึก):

    git log --oneline -- "MyScript"
    
  2. กู้คืนเวอร์ชันล่าสุดที่ไฟล์ยังอยู่ในโฟลเดอร์ (แทนที่ <commit_hash> ด้วยแฮชของการคอมมิตก่อนการลบ หรือ ใช้ <deletion_commit_hash>~1):

    git checkout <commit_hash> -- "MyScript"
    
  3. คอมมิตและพุชสคริปต์ที่กู้คืนกลับไปยังเซิร์ฟเวอร์

    git commit -m "Restore MyScript from history"
    git push origin
    

เมื่อพุชแล้ว ให้โหลดแท็บสคริปต์ของตัวแก้ไขโค้ดในเบราว์เซอร์อีกครั้ง (หรือคลิกปุ่ม ที่ด้านบนของแท็บสคริปต์) เพื่อดูสคริปต์ที่กู้คืน

ตัวเลือก B: กู้คืนโฟลเดอร์ที่ถูกลบ

วิธีกู้คืนโฟลเดอร์ที่ถูกลบและสคริปต์ทั้งหมดภายในโฟลเดอร์ (เช่น MyFolder/)

  1. ตรวจสอบบันทึกการคอมมิต Git เพื่อค้นหาการคอมมิตการลบและการคอมมิต ก่อนหน้าการคอมมิตการลบ (แสดงอยู่หลังการคอมมิตการลบในเอาต์พุตบันทึก):

    git log --oneline -- "MyFolder/"
    
  2. กู้คืนเวอร์ชันล่าสุดที่โฟลเดอร์ยังคงมีอยู่ไปยังโฟลเดอร์ของคุณ (แทนที่ <commit_hash> ด้วยแฮชของการคอมมิตก่อนการลบ หรือ ใช้ <deletion_commit_hash>~1):

    git checkout <commit_hash> -- "MyFolder/"
    
  3. คอมมิตและพุชโฟลเดอร์ที่กู้คืนกลับไปยังเซิร์ฟเวอร์

    git commit -m "Restore MyFolder and all its scripts"
    git push origin
    

เมื่อพุชแล้ว ให้โหลดแท็บสคริปต์ของตัวแก้ไขโค้ดในเบราว์เซอร์อีกครั้ง (หรือคลิกปุ่ม ที่ด้านบนของแท็บสคริปต์) เพื่อดูโฟลเดอร์ที่กู้คืน

ตัวเลือก ค: ย้ายข้อมูลทั้งที่เก็บ

หากต้องการย้ายข้อมูลทั้งที่เก็บและประวัติการคอมมิตทั้งหมดไปยัง บัญชีใหม่ (เช่น เมื่อเปลี่ยนจากบัญชีของสถาบันเป็นบัญชีส่วนตัว ) ให้ทำดังนี้

ข้อมูลเข้าสู่ระบบและสิทธิ์: หากคุณย้ายข้อมูลที่เก็บระหว่างบัญชี Google ที่แตกต่างกัน 2 บัญชี (เช่น จากบัญชีมหาวิทยาลัยหรือบัญชีงานไปยังบัญชีส่วนตัว) คุณต้องตรวจสอบว่าบัญชีใหม่มีสิทธิ์อ่านที่เก็บเก่าก่อนที่จะเริ่ม

  • ข้อกำหนดเบื้องต้นในการแชร์: ลงชื่อเข้าใช้บัญชีเก่าของตัวแก้ไขโค้ด คลิกไอคอน ข้างชื่อที่เก็บเก่า แล้วแชร์กับอีเมลของบัญชี Google ใหม่ โดยให้สิทธิ์เข้าถึงระดับผู้อ่าน
  • การทำเช่นนี้จะทำให้คุณต้องตรวจสอบสิทธิ์ในคอมพิวเตอร์เครื่องที่ใช้ ครั้งเดียว (โดยใช้ข้อมูลเข้าสู่ระบบ Git ของบัญชีใหม่ที่สร้างขึ้นใน ขั้นตอนที่ 1) บัญชีใหม่จะมีสิทธิ์ทั้งโคลนจากที่เก็บเก่าและพุชไปยังที่เก็บใหม่ เพื่อหลีกเลี่ยงความขัดแย้งของข้อมูลเข้าสู่ระบบ
  1. โคลนที่เก็บเก่าในเครื่องโดยใช้ Git มาตรฐาน

    git clone https://earthengine.googlesource.com/users/old_username/old_repository
    
  2. สร้างที่เก็บข้อมูลใหม่ที่ว่างเปล่าจากเมนูใหม่ > ที่เก็บข้อมูลในบัญชีตัวแก้ไขโค้ดใหม่ (หมายเหตุ: อย่าสร้างหรือบันทึกสคริปต์หรือโฟลเดอร์ใดๆ ในที่เก็บใหม่ก่อนที่จะพุช ไม่เช่นนั้นการพุชจะล้มเหลว)

  3. ไปยังไดเรกทอรีที่โคลนในเครื่อง

    cd old_repository
    
  4. พุชประวัติการคอมมิตและสคริปต์ทั้งหมดในเครื่องไปยังที่เก็บ Earth Engine ใหม่ที่ว่างเปล่าโดยตรง

    git push https://earthengine.googlesource.com/users/new_username/new_repository --all
    

เมื่อพุชแล้ว ให้โหลดแท็บสคริปต์ในตัวแก้ไขโค้ดของบัญชีใหม่ซ้ำ (หรือคลิกปุ่ม ) เพื่อดูที่เก็บและประวัติที่ย้ายข้อมูล