Nếu bạn vô tình xoá một tập lệnh hoặc thư mục bên trong một kho lưu trữ trong Trình soạn thảo mã Earth Engine hoặc cần di chuyển một kho lưu trữ sang một tài khoản mới, thì toàn bộ lịch sử cam kết sẽ được lưu giữ trong nhật ký Git trên các máy chủ của chúng tôi. Mặc dù biểu tượng kho lưu trữ trong Trình soạn thảo mã sẽ hoàn nguyên toàn bộ kho lưu trữ về trạng thái trước đó, nhưng việc nhân bản kho lưu trữ cục bộ bằng các công cụ dòng lệnh Git tiêu chuẩn cho phép bạn chọn lọc khôi phục các tập lệnh hoặc thư mục riêng lẻ mà không làm mất các thay đổi mới hơn đối với các tập lệnh khác.
Những dữ liệu có thể khôi phục
Trong thẻ Scripts (Tập lệnh) của Trình soạn thảo mã, công việc của bạn được sắp xếp dưới dạng users/username/repository:folder/script:
- Tập lệnh và thư mục (có thể khôi phục): Việc xoá một tập lệnh hoặc thư mục bên trong kho lưu trữ chỉ xoá tập lệnh hoặc thư mục đó khỏi cam kết gần đây nhất. Vì kho lưu trữ vẫn tồn tại trên
earthengine.googlesource.com, nên bạn có thể sao chép kho lưu trữ và khôi phục các tệp đã xoá trong nhật ký cam kết Git bằng Cách A hoặc Cách B. - Toàn bộ kho lưu trữ (không thể khôi phục): Việc xoá một kho lưu trữ (
users/username/repository) sẽ xoá vĩnh viễn kho lưu trữ Git, tập lệnh và nhật ký cam kết của kho lưu trữ đó khỏiearthengine.googlesource.com(trả về"Repository is not found"). Sau khi bị xoá, một kho lưu trữ sẽ không thể được sao chép hoặc khôi phục.
Trước tiên, hãy hoàn tất phần Điều kiện tiên quyết, sau đó chọn một trong các lựa chọn sau đây tuỳ thuộc vào nhiệm vụ của bạn:
- Cách A: Khôi phục một tập lệnh đã xoá
- Cách B: Khôi phục thư mục đã xoá
- Cách C: Di chuyển toàn bộ kho lưu trữ
Điều kiện tiên quyết
Bước 1: Tạo thông tin đăng nhập Git
Vì các kho lưu trữ Git do Google lưu trữ sử dụng phương thức xác thực bằng mã thông báo bảo mật, nên trước tiên, bạn phải tạo thông tin đăng nhập Git cục bộ:
- Mở cửa sổ ẩn danh hoặc duyệt web riêng tư trong trình duyệt web rồi truy cập vào trình tạo mật khẩu Git: earthengine.googlesource.com/new-password (Lưu ý: Chỉ đăng nhập bằng Tài khoản Google đã đăng ký Earth Engine. Nếu bạn đang di chuyển một kho lưu trữ sang một tài khoản mới theo Lựa chọn C, trước tiên hãy chia sẻ kho lưu trữ cũ với tài khoản mới của bạn và đăng nhập tại đây bằng Tài khoản Google mới.)
- Sao chép toàn bộ khối lệnh shell đã tạo xuất hiện trên màn hình.
- Mở một cửa sổ dòng lệnh trên máy tính, dán các lệnh đã sao chép rồi chạy các lệnh đó. Thao tác này sẽ tự động định cấu hình thông tin đăng nhập cookie Git của máy.
Nếu đây là lần đầu tiên bạn sử dụng Git trên máy tính, hãy định cấu hình tên và email của tác giả để Git cho phép bạn tạo các cam kết:
git config --global user.name "Your Name" git config --global user.email "you@example.com"
Bước 2: Sao chép kho lưu trữ (Lựa chọn A và B)
Nếu bạn đang di chuyển một kho lưu trữ giữa các tài khoản, hãy chuyển đến Lựa chọn C. Để khôi phục một tập lệnh hoặc thư mục đã xoá, hãy sao chép kho lưu trữ của bạn trong thiết bị đầu cuối cục bộ bằng cách thay thế username và repository bằng thông tin chi tiết về Earth Engine (bạn cũng có thể sao chép chính xác lệnh sao chép bằng cách nhấp vào biểu tượng bên cạnh tên kho lưu trữ trong thẻ Tập lệnh):
git clone https://earthengine.googlesource.com/users/username/repository
Sau khi hoàn tất, hãy chuyển đến thư mục đã sao chép:
cd repository
Cách A: Khôi phục một tập lệnh đã xoá
Cách khôi phục một tệp kịch bản đã xoá (ví dụ: MyScript hoặc MyFolder/MyScript):
Xem nhật ký của tệp để tìm cam kết xoá và cam kết ngay trước đó (được liệt kê ngay sau cam kết xoá trong đầu ra nhật ký):
git log --oneline -- "MyScript"Khôi phục phiên bản gần đây nhất mà tệp vẫn còn tồn tại vào thư mục của bạn (thay thế
<commit_hash>bằng hàm băm của cam kết trước khi xoá hoặc sử dụng<deletion_commit_hash>~1):git checkout <commit_hash> -- "MyScript"Xác nhận và đẩy tập lệnh đã khôi phục trở lại máy chủ:
git commit -m "Restore MyScript from history" git push origin
Sau khi đẩy, hãy tải lại thẻ Scripts (Tập lệnh) của Trình soạn thảo mã trong trình duyệt (hoặc nhấp vào nút ở đầu thẻ Scripts) để xem tập lệnh đã khôi phục.
Cách B: Khôi phục thư mục đã xoá
Cách khôi phục một thư mục đã xoá và tất cả tập lệnh trong thư mục đó (ví dụ: MyFolder/):
Kiểm tra nhật ký cam kết Git để tìm cam kết xoá và cam kết ngay trước đó (được liệt kê ngay sau cam kết xoá trong đầu ra nhật ký):
git log --oneline -- "MyFolder/"Khôi phục phiên bản gần đây nhất mà thư mục vẫn còn tồn tại vào thư mục của bạn (thay thế
<commit_hash>bằng hàm băm của cam kết trước khi xoá hoặc sử dụng<deletion_commit_hash>~1):git checkout <commit_hash> -- "MyFolder/"Xác nhận và đẩy thư mục đã khôi phục trở lại máy chủ:
git commit -m "Restore MyFolder and all its scripts" git push origin
Sau khi đẩy, hãy tải lại thẻ Scripts (Tập lệnh) của Trình soạn thảo mã trong trình duyệt (hoặc nhấp vào nút ở đầu thẻ Scripts (Tập lệnh)) để xem thư mục đã khôi phục.
Cách C: Di chuyển toàn bộ kho lưu trữ
Nếu bạn cần di chuyển toàn bộ kho lưu trữ và nhật ký cam kết hoàn chỉnh của kho lưu trữ đó sang một tài khoản mới (ví dụ: khi chuyển đổi giữa tài khoản tổ chức và tài khoản cá nhân):
Thông tin đăng nhập và quyền: Nếu đang di chuyển một kho lưu trữ giữa hai Tài khoản Google khác nhau (ví dụ: từ tài khoản trường học hoặc tài khoản công việc sang tài khoản cá nhân), bạn phải đảm bảo tài khoản mới có quyền đọc kho lưu trữ cũ trước khi bắt đầu:
- Điều kiện tiên quyết để chia sẻ: Đăng nhập vào tài khoản Code Editor cũ, nhấp vào biểu tượng bên cạnh tên kho lưu trữ cũ rồi chia sẻ kho lưu trữ đó với địa chỉ email mới của Tài khoản Google, cấp cho địa chỉ email đó quyền truy cập Đọc.
- Bằng cách này, bạn chỉ cần xác thực trên máy tính cục bộ của mình một lần (bằng thông tin đăng nhập Git của tài khoản mới mà bạn đã tạo trong Bước 1). Tài khoản mới của bạn sẽ có quyền sao chép từ kho lưu trữ cũ và đẩy sang kho lưu trữ mới, tránh xung đột thông tin đăng nhập.
Sao chép kho lưu trữ cũ của bạn trên máy bằng Git tiêu chuẩn:
git clone https://earthengine.googlesource.com/users/old_username/old_repositoryTạo một kho lưu trữ mới, trống từ trình đơn New > Repository (Mới > Kho lưu trữ) trong tài khoản Trình soạn thảo mã mới của bạn. (Lưu ý: Đừng tạo hoặc lưu bất kỳ tập lệnh hay thư mục nào trong kho lưu trữ mới trước khi đẩy, nếu không thao tác đẩy sẽ thất bại.)
Chuyển đến thư mục được sao chép trên thiết bị của bạn:
cd old_repositoryĐẩy toàn bộ nhật ký cam kết và tập lệnh cục bộ trực tiếp vào kho lưu trữ Earth Engine mới, trống của bạn:
git push https://earthengine.googlesource.com/users/new_username/new_repository --all
Sau khi đẩy, hãy tải lại thẻ Tập lệnh trong Trình soạn thảo mã của tài khoản mới (hoặc nhấp vào nút ) để xem kho lưu trữ và nhật ký đã di chuyển.