작업 공간을 Git 리포지토리와 통합하기

중요

2025년 9월부터 Snowflake는 계정을 워크시트에서 작업 공간으로 점진적으로 업그레이드합니다. 작업 공간이 기본 SQL 편집기가 됩니다. 자세한 내용은 워크시트에서 작업 공간으로 계정 기본 설정하기 섹션을 참조하십시오.

개요

작업 영역은 Snowflake에 로컬로 설정하거나 개발 중인 작업 영역을 Git 리포지토리의 분기와 동기화할 수 있습니다. 워크스페이스에서는 가능합니다.

Git 워크스페이스 생성하기

|sf-web-interface|에서 직접 파일을 개발하고 관리하기 위해 Git 리포지토리에 연결된 작업 공간을 생성할 수 있습니다.

참고

Git 리포지토리에는 하나 이상의 분기가 포함되어야 합니다. 빈 리포지토리는 지원되지 않습니다.

Git 동기화 작업 공간을 새로 만들려면 다음 단계를 따르세요.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Projects » Workspaces 를 선택합니다.

  3. Workspaces 메뉴에서 From Git repository 를 선택합니다.

  4. Git 리포지토리(예: https://www.github.com/my-user/my-repo-name)에서 URL 복사본을 복사한 다음 Repository URL 필드에 붙여넣습니다.

  5. 선택 사항입니다. 새 Git 동기화 워크스페이스의 이름을 바꿉니다.

  6. API Integration 메뉴에서 API 통합을 선택합니다.

    API 통합은 계정 관리자가 생성하며 4단계에서 사용 중인 Git 리포지토리 URL에 대한 액세스를 허용해야 합니다. 자세한 내용은 Git을 사용하기 위해 Snowflake 설정하기 섹션을 참조하세요.

    또한 GitHub 를 Git 공급자로 사용하고 인증에 OAuth 를 선호하는 경우 계정 관리자는 API 통합을 생성하여 OAuth 를 지원해야 합니다. 예:

    CREATE OR REPLACE API INTEGRATION api_integration_name
       API_PROVIDER = git_https_api
       API_ALLOWED_PREFIXES = ('https://github.com/')
       API_USER_AUTHENTICATION = (
          TYPE = snowflake_github_app
       )
       ENABLED = TRUE;
    
    Copy
  7. API 통합에서 인증 방법을 선택합니다.

    • OAuth2 - GitHub 리포지토리로 인증하려면 Sign in 을 선택합니다. 로그인한 후에는 이후 세션에서 자격 증명을 제공할 필요가 없습니다. PrivateLink 환경에서는 OAuth2 를 사용할 수 없습니다.

    • Personal access token - 토큰이 포함된 오브젝트가 저장된 데이터베이스와 스키마를 선택합니다. 새 시크릿을 생성하려면 + Secret 을 선택하고 필수 권한을 입력합니다. API 통합은 이 시크릿 또는 모든 시크릿에 대한 액세스를 허용하도록 구성해야 합니다.

    • Public repository - 인증이 필요 없는 공개 리포지토리를 사용하는 경우 이 옵션을 선택합니다. 워크스페이스에서 이 공개 리포지토리로 변경 내용을 커밋하거나 푸시할 수 없습니다.

  8. Create 를 선택합니다.

분기에 대한 작성기 세부 정보 및 자격 증명 업데이트하기

기본적으로 Snowflake 이메일과 사용자 이름은 Git 리포지토리에 변경 사항을 커밋하는 데 사용됩니다. 언제든지 업데이트할 수 있습니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Projects » Workspaces 를 선택합니다.

  3. Changes 탭을 선택합니다.

  4. 줄임표를 선택한 다음 Edit credentials 을 선택합니다.

  5. 작성기 이름과 이메일을 지정합니다.

  6. Update 를 선택합니다.

새 분기 생성하기

현재 분기에서 새 분기를 생성해 독립적으로 변경 작업을 할 수 있습니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Projects » Workspaces 를 선택합니다.

  3. Changes 탭을 선택합니다.

  4. 리포지토리 드롭다운을 선택합니다.

  5. + New 를 선택합니다.

  6. 새 분기 이름을 지정한 다음 Create 를 선택합니다.

다른 지점으로 변환

저장했지만 커밋하지 않은 변경 내용이 있는 경우 분기를 변환하기 전에 해당 변경 내용을 처리하는 방법을 선택해야 합니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Projects » Workspaces 를 선택합니다.

  3. Git 워크스페이스 뷰에서 Changes 를 선택합니다.

  4. 분기 메뉴에서 변환하려는 분기를 선택합니다.

    목록을 필터링하려면 분기 이름을 입력하세요.

원격 분기 가져오기

Snowsight 외부에서 새 분기를 만든 경우(예: Git 공급자에서 만든 분기) Fetch All 옵션을 사용하여 Git 동기화 작업 영역으로 가져올 수 있습니다. 그러면 사용 가능한 원격 지점 목록이 업데이트됩니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Projects » Workspaces 를 선택합니다.

  3. Git 워크스페이스 뷰에서 Changes 를 선택합니다.

  4. Pull 메뉴 옆의 아래쪽 화살표를 선택한 다음 Fetch All 을 선택합니다. 가져오기가 완료되면 새로 생성된 원격 분기가 분기 목록에 나타나고 체크아웃에 사용할 수 있습니다.

업데이트된 파일 보기

마지막으로 커밋 및 푸시에 성공한 이후 추가, 삭제 또는 수정된 모든 파일을 뷰로 보려면 다음 단계를 따르세요.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Projects » Workspaces 를 선택합니다.

  3. 폴더 뷰 상단에서 Changes 를 선택합니다. 수정된 파일은 M, 추가된 파일은 A, 삭제된 파일은 D 로 표시됩니다 .

  4. 편집기에서 변경 사항의 시각적 차이를 보려면 파일을 선택합니다.

업데이트 커밋 및 푸시

변경 내용을 검토한 후에는 워크스페이스 내에서 원격 Git 리포지토리에 커밋하고 푸시할 수 있습니다.

업데이트된 파일을 원격 Git 리포지토리에 커밋하고 푸시하려면 다음 단계를 따르세요.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Projects » Workspaces 를 선택합니다.

  3. 폴더 뷰 상단에서 Changes 를 선택합니다.

  4. Commit message 필드에 커밋 메시지를 작성합니다.

  5. Push 을 선택합니다.

  6. 커밋 메시지를 작성하고 Push 를 선택하여 업데이트를 Git 리포지토리에 푸시합니다.

    참고

    충돌이 감지되면 먼저 끌어오라는 메시지가 표시됩니다. Pull 을 선택하여 충돌이 있는 파일 목록을 검토합니다.

충돌 보기 및 해결하기

푸시 중에 충돌이 발생하면 다시 커밋하기 전에 워크스페이스에서 직접 충돌을 확인하고 해결할 수 있습니다.

  1. 워크스페이스의 폴더 뷰 상단에서 Changes 를 선택합니다. 1개 이상의 파일에 충돌이 있는 경우 뷰 상단에 메시지가 표시됩니다. 충돌이 있는 파일은 빨간색 M 으로 표시됩니다.

  2. 편집기에서 충돌의 시각적 차이를 보려면 파일을 선택합니다. File with conflicts 에서 차이점은 인라인으로 강조 표시되어 있습니다.

  3. 현재 변경 사항, 수신되는 변경 사항 또는 두 가지 변경 사항을 모두 수락합니다. 병합 결과가 표시됩니다.

  4. Diff View 에서 현재 버전과 원격 버전을 나란히 볼 수 있습니다.

  5. Accept all current 또는 Accept all remote 를 선택합니다.

  6. 충돌을 해결한 후 Push 를 선택합니다.

  7. 커밋 메시지를 작성합니다.

  8. Push 을 선택합니다.