콘텐츠로 이동
📣 인포그랩에서 OpenAI 기술 기반으로 자체 개발한 자동화 번역 프로그램을 통해 n8n 공식 문서의 한글판을 국내 최초로 제공합니다.

푸시 및 풀#

n8n 인스턴스가 Git 리포지토리에 연결되어 있는 경우, 작업을 Git과 동기화 상태로 유지해야 합니다.

이 문서는 Git 개념 및 용어에 대한 어느 정도의 이해를 가정합니다. n8n이 Git과 함께 작동하는 방식에 대한 소개는 Git 및 n8n을 참조하세요.

권장 사항: 동일한 n8n 인스턴스에서 푸시와 풀을 동시에 수행하지 마세요.

n8n 인스턴스에서 브랜치로 작업을 푸시하고, 같은 인스턴스로 다시 풀하는 것은 가능하지만, 권장되지 않습니다.
병합 충돌 및 작업 덮어쓰기를 방지하려면 한 방향으로만 작업을 진행하는 프로세스를 만들 것을 권장합니다. 즉, Git으로 푸시하거나 Git에서 가져오되, 두 작업을 동시에 수행하지 않는 것이 좋습니다.

다른 사람의 작업 가져오기#

제한된 기능

일반 사용자는 Git에서 작업을 가져올 수 없습니다. Git에서 작업을 가져오려면 n8n 인스턴스 소유자, 관리자 또는 프로젝트 소유자여야 합니다.

Git에서 작업을 가져오려면, 기본 메뉴에서 Pull Pull icon을 선택하세요.

View screenshot

Pull and push buttons when menu is closed
Pull and push buttons when menu is closed

Pull and push buttons when menu is open
Pull and push buttons when menu is open

n8n은 로컬 변경 내용을 덮어쓸 것이라는 경고를 표시할 수 있습니다. 로컬 작업을 Git의 콘텐츠로 덮어쓰려면 Pull and override를 선택하세요.

변경 사항이 새 변수 또는 자격 증명 스텁을 포함하면, n8n은 사용 전에 항목의 값을 채워야 한다고 알립니다.

삭제된 리소스 처리 방법

워크플로, 자격 증명, 변수 및 태그가 리포지토리에서 삭제되면, 이러한 리소스의 로컬 버전이 자동으로 삭제되지 않습니다. 대신, 리포지토리 변경 사항을 가져올 때, n8n은 구식 리소스에 대해 알리고 삭제할 것인지 물어봅니다.

Pull 시 워크플로 및 자격 증명 소유자가 변경될 수 있음#

Git에서 n8n 인스턴스로 가져올 때, n8n은 워크플로와 자격 증명을 일치하는 사용자 또는 프로젝트에 할당하려고 시도합니다.

원래 소유자가 사용자일 경우:

두 인스턴스에서 동일한 소유자가 존재하면(이메일이 일치), 소유자는 동일하게 유지됩니다. 원래 소유자가 새 인스턴스에 없으면, n8n은 가져오는 사용자를 워크플로 소유자로 설정합니다.

원래 소유자가 프로젝트일 경우:

n8n은 원래 프로젝트 이름을 새 인스턴스의 프로젝트 이름과 조합하려고 시도합니다. 일치하는 프로젝트가 없으면, n8n은 이름으로 새 프로젝트를 생성하고 현재 사용자를 프로젝트 소유자로 할당하며 워크플로와 자격 증명을 프로젝트로 가져옵니다.

Pull 시 간헐적인 서비스 중단 발생 가능#

활성 워크플로에 변경 사항을 가져오는 경우, n8n은 가져오는 동안 워크플로를 비활성화한 다음 다시 활성화합니다. 이는 워크플로에 몇 초의 다운타임을 초래할 수 있습니다.

작업을 Git에 보내기#

제한된 기능

일반 사용자는 Git에 작업을 보낼 수 없습니다. Git에 작업을 보내려면 n8n 인스턴스 소유자, 관리자 또는 프로젝트 소유자여야 합니다.

Git으로 작업을 푸시하려면:

  1. 메인 메뉴에서 푸시(Push) 푸시 아이콘 를 선택합니다.

    View screenshot

    Pull and push buttons when menu is closed
    Pull and push buttons when menu is closed

    Pull and push buttons when menu is open
    Pull and push buttons when menu is open

  2. 커밋 및 푸시 변경사항(Commit and push changes) 모달에서 푸시할 워크플로를 선택합니다.
    상태(새로운 항목, 수정된 항목, 삭제된 항목)별로 필터링하거나 검색하여 원하는 워크플로를 찾을 수 있습니다.
    n8n은 태그, 변수 및 자격 증명 스텁을 자동으로 푸시합니다.

  3. 커밋 메시지를 입력합니다. 변경 사항을 한 문장으로 간단히 설명하세요.
  4. 커밋 및 푸시(Commit and Push) 를 선택합니다.
    n8n이 작업을 Git으로 전송한 후, 완료 메시지를 표시합니다.

커밋되는 내용#

n8n은 다음을 Git에 커밋합니다:

  • 워크플로, 태그 및 워크플로 소유자의 이메일 주소를 포함합니다. 푸시할 워크플로를 선택할 수 있습니다.
  • 자격 증명 스텁 (ID, 이름, 유형)
  • 변수 스텁 (ID 및 이름)
  • 프로젝트

n8n API를 사용하여 프로그래밍 방식으로 변수 관리하기를 할 수 있습니다.

병합 동작 및 충돌#

n8n의 소스 제어 구현은 의견이 반영되어 있습니다. 자격 증명 및 변수의 병합 충돌은 자동으로 해결합니다. n8n은 워크플로의 충돌을 감지할 수 없습니다.

워크플로우#

n8n에게 워크플로우를 푸시하거나 풀할 때 무엇을 해야 하는지 명확히 알려야 합니다. Git 리포지토리가 진실의 출처로 작용합니다.

풀할 때, 로컬 워크플로우 복사본이 Git과 다르다는 경고를 받을 수 있으며, 수락하면 로컬 복사본이 덮어씌워집니다. 풀할 때 관련 변경 사항을 잃지 않도록 주의하세요.

푸시할 때, 로컬 워크플로우는 Git에 있는 내용을 덮어쓰므로 최신 버전이 있는지 확인하거나 최근 변경 사항을 덮어쓸 위험이 있습니다.

위에서 설명한 문제를 방지하려면 작업이 끝나면 바로 워크플로우에 대한 변경 사항을 푸시해야 합니다. 그런 다음 풀하는 것이 안전합니다.

데이터 손실을 피하려면:

  • 워크플로우가 한 방향으로 흐르도록 소스 제어 설정을 설계하세요. 예를 들어, 개발 인스턴스에서 수정한 후 Git에 푸시하고, 그 다음 프로덕션에 풀하세요. 프로덕션 인스턴스에서 수정하고 푸시하지 마세요.
  • 모든 워크플로우를 푸시하지 마세요. 필요한 것만 선택하세요.
  • Git 리포지토리의 파일을 수동으로 편집하는 것은 주의하세요.

자격 증명, 변수 및 워크플로우 태그#

자격 증명과 변수는 병합 문제가 발생하지 않으며, n8n이 유지할 버전을 선택합니다.

풀할 때:

  • 태그, 변수 또는 자격 증명이 존재하지 않으면 n8n이 생성합니다.
  • 태그, 변수 또는 자격 증명이 이미 존재하면, n8n은 업데이트하지 않습니다. 단, 다음 경우는 예외입니다:
    • API나 외부에서 변수를 사용하여 값을 설정하는 경우 새 값이 기존 값을 덮어씁니다.
    • 자격 증명 이름이 변경된 경우. n8n은 Git에 있는 버전을 사용합니다.
    • 태그 이름이 변경된 경우. n8n은 태그 이름을 업데이트합니다. 태그 이름은 고유하므로 태그 이름을 변경할 때 주의해야 하며, 풀 과정에서 고유성 문제를 일으킬 수 있습니다.

푸시할 때:

  • n8n은 전체 변수 및 태그 파일을 덮어씁니다.
  • 자격 증명이 이미 존재하는 경우, n8n은 변경 사항으로 덮어쓰지만, 풀할 때 기존 자격 증명에 이러한 변경 사항을 적용하지 않습니다.

외부 비밀 금고로 자격 증명 관리

다른 n8n 환경에서 서로 다른 자격 증명이 필요한 경우, 외부 비밀을 사용하세요.

인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!