Earth Engine 코드 편집기의 저장소에서 스크립트나 폴더를 실수로 삭제하거나 저장소를 새 계정으로 이전해야 하는 경우 전체 커밋 기록이 Google 서버의 Git 로그에 보존됩니다. 코드 편집기의 저장소 아이콘은 전체 저장소를 이전 상태로 되돌리지만 표준 Git 명령줄 도구를 사용하여 저장소를 로컬로 클론하면 다른 스크립트의 최신 변경사항을 유지하면서 개별 스크립트나 폴더를 선택적으로 복원할 수 있습니다.
복구할 수 있는 항목
코드 편집기 스크립트 탭에서 작업은 users/username/repository:folder/script로 정리됩니다.
- 스크립트 및 폴더 (복구 가능): 저장소 내에서 스크립트나 폴더를 삭제하면 최신 커밋에서만 삭제됩니다. 저장소 자체가
earthengine.googlesource.com에 계속 존재하므로 옵션 A 또는 옵션 B를 사용하여 저장소를 클론하고 Git 커밋 기록에서 삭제된 파일을 복원할 수 있습니다. - 전체 저장소 (복구 불가): 저장소(
users/username/repository)를 삭제하면 Git 저장소, 스크립트, 커밋 기록이earthengine.googlesource.com에서 영구적으로 삭제됩니다("Repository is not found"반환). 삭제된 저장소는 클론하거나 복구할 수 없습니다.
먼저 기본 요건을 완료한 다음 작업에 따라 다음 옵션 중 하나를 선택합니다.
기본 요건
1단계: Git 사용자 인증 정보 생성
Google 호스팅 Git 저장소는 보안 토큰 인증을 사용하므로 먼저 로컬 Git 사용자 인증 정보를 생성해야 합니다.
- 웹브라우저에서 시크릿 모드 또는 시크릿 브라우징 창을 열고 Git 비밀번호 생성기를 방문합니다. earthengine.googlesource.com/new-password (참고: Earth Engine에 등록된 Google 계정으로만 로그인하세요. 옵션 C에 따라 저장소를 새 계정으로 이전하는 경우 먼저 이전 저장소를 새 계정과 공유하고 여기에서 새 Google 계정으로 로그인하세요.)
- 화면에 표시된 생성된 셸 명령어 블록 전체를 복사합니다.
- 컴퓨터에서 터미널 (명령줄)을 열고 복사한 명령어를 붙여넣은 후 실행합니다. 이렇게 하면 머신의 Git 쿠키 사용자 인증 정보가 자동으로 구성됩니다.
컴퓨터에서 Git을 처음 사용하는 경우 Git에서 커밋을 만들 수 있도록 작성자 이름과 이메일을 구성합니다.
git config --global user.name "Your Name" git config --global user.email "you@example.com"
2단계: 저장소 클론 (옵션 A 및 B)
계정 간에 저장소를 이전하는 경우 옵션 C로 건너뛰세요. 삭제된 스크립트 또는 폴더를 복원하려면 username 및 repository을 Earth Engine 세부정보로 대체하여 로컬 터미널에서 저장소를 클론합니다. 스크립트 탭의 저장소 이름 옆에 있는 아이콘을 클릭하여 정확한 클론 명령어를 복사할 수도 있습니다.
git clone https://earthengine.googlesource.com/users/username/repository
완료되면 클론된 폴더로 이동합니다.
cd repository
옵션 A: 삭제된 스크립트 복원
삭제된 스크립트 파일 (예: 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
푸시가 완료되면 브라우저에서 코드 편집기 스크립트 탭을 새로고침하거나 스크립트 탭 상단의 버튼을 클릭하여 복원된 폴더를 확인합니다.
옵션 C: 전체 저장소 이전
전체 저장소와 전체 커밋 기록을 새 계정으로 이전해야 하는 경우 (예: 기관 계정과 개인 계정 간에 전환하는 경우) 다음 단계를 따르세요.
사용자 인증 정보 및 권한: 서로 다른 Google 계정 간에 저장소를 이전하는 경우 (예: 대학 또는 직장 계정에서 개인 계정으로) 시작하기 전에 새 계정에 이전 저장소를 읽을 권한이 있는지 확인해야 합니다.
- 공유 기본 요건: 이전 코드 편집기 계정에 로그인하고 이전 저장소 이름 옆에 있는 아이콘을 클릭한 다음 새 Google 계정 이메일 주소와 공유하여 읽기 권한 액세스 권한을 부여합니다.
- 이렇게 하면 1단계에서 생성된 새 계정의 Git 사용자 인증 정보를 사용하여 로컬 컴퓨터에서 한 번만 인증하면 됩니다. 새 계정에는 이전 저장소에서 클론하고 새 저장소로 푸시할 수 있는 권한이 부여되어 사용자 인증 정보 충돌을 방지할 수 있습니다.
표준 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
푸시가 완료되면 새 계정의 코드 편집기에서 스크립트 탭을 새로고침하거나 버튼을 클릭하여 이전된 저장소와 기록을 확인합니다.