Git 동기화는 Lovable 프로젝트 코드를 자체 GitHub, GitLab 또는 Bitbucket 저장소에 자동 양방향 동기화로 보관하여 코드 백업, 개발자 협업, IDE 작업, 어디에나 배포를 가능하게 합니다.
Lovable 프로젝트 코드를 GitHub, GitLab 또는 Bitbucket에 동기화하기
Git 동기화는 Lovable 프로젝트 코드를 자체 GitHub, GitLab 또는 Bitbucket 저장소에 자동 양방향 동기화로 보관하여 코드 백업, 개발자 협업, IDE 작업, 어디에나 배포를 가능하게 합니다.
Lovable로 빌드하면 프로젝트 코드가 Lovable 플랫폼 안에 저장·관리됩니다. Git 동기화는 Lovable 프로젝트를 본인이 소유한 GitHub, GitLab 또는 Bitbucket 저장소에 연결하고 둘을 자동으로 동기화합니다. Lovable에서 변경한 내용이 저장소에 commit되고, 동기화된 branch에 푸시된 commit이 Lovable 프로젝트로 다시 반영됩니다.
Lovable을 사용하는 데 Git이 필요하지는 않습니다. 많은 사용자가 Lovable 내에서 완전히 빌드하고 출시합니다. 코드 사본만 필요하다면 Project settings → Git의 Download codebase 섹션을 사용하거나, 코드 에디터를 열고 파일 트리 사이드바 하단의 Download codebase를 클릭하세요(유료 플랜).
이 페이지는 Git 동기화가 제공자 전반에서 어떻게 작동하는지 설명합니다. 프로젝트에서 연결은 Project settings → Git에 있습니다. 설정 단계는 제공자별 페이지를 참고하세요.
- GitHub(github.com, data residency를 갖춘 GitHub Enterprise Cloud, 또는 GitHub Enterprise Server)
- GitLab(GitLab.com 또는 self-managed GitLab 인스턴스)
- Bitbucket(Bitbucket Cloud)
앱이 GitHub REST API를 호출해 저장소, 이슈, pull request를 읽게 하고 싶다면 GitHub API 커넥터를 사용하세요.
프로젝트를 Git 저장소에 동기화하는 이유
- 코드 백업. 본인이 통제하는 계정에서 프로젝트를 Lovable 외부에 안전하게 저장합니다.
- 개발자와 협업. Lovable에서 빌드하면서 branch, pull 또는 merge request, 코드 리뷰를 활용합니다.
- IDE에서 로컬 작업. 저장소를 clone하여 로컬에서 편집·commit하고 푸시합니다. 변경 사항이 Lovable로 다시 동기화됩니다.
- Lovable 외부에 배포. 셀프 호스팅하거나 다른 플랫폼에 배포합니다. 배포·호스팅·소유권 옵션을 참고하세요.
- 자체 인프라에 코드 사본 보관. data residency를 갖춘 GitHub Enterprise Cloud, GitHub Enterprise Server(둘 다 Enterprise 플랜), 또는 self-managed GitLab 인스턴스에 동기화합니다.
Git 동기화 작동 방식
Git 동기화는 모든 제공자에서 두 계층으로 구성됩니다.
- 워크스페이스 연결은 Lovable이 Git 계정, 조직, 그룹, 워크스페이스 또는 인스턴스에 접근하도록 인가합니다. 연결은 워크스페이스에 속하며 그 안의 어떤 프로젝트에서도 재사용할 수 있습니다. 하나의 워크스페이스는 GitHub, GitLab, Bitbucket 연결을 동시에 포함해 여러 연결을 가질 수 있습니다.
- 프로젝트 저장소 링크는 Lovable 프로젝트 하나를 해당 연결 중 하나에 속한 저장소 하나에 연결합니다. 프로젝트를 링크하면 새 저장소가 생성되고 양방향 동기화가 자동으로 시작됩니다.
링크되면 다음과 같습니다.
- Lovable에서 편집한 내용이 저장소에 commit·푸시됩니다.
- 동기화된 branch에 푸시된 commit이 Lovable 프로젝트로 다시 반영됩니다.
- 동기화된 commit에는 Lovable에서 만든 편집과 같은 검사가 적용됩니다. dependency가 바뀌면 Lovable이 dependency audit을 실행하고 프로젝트의 Security view를 업데이트합니다.
- Lovable은 한 번에 하나의 branch만 편집하고 동기화합니다. 다른 branch의 commit은 동기화된 branch에 병합하거나 동기화 branch를 전환하기 전까지 Lovable에 나타나지 않습니다. 모든 제공자에서 Lovable 안에서 branch를 전환하고 새 branch를 만들 수 있습니다.
동기화 상태
Project settings → Git의 동기화 상태 카드는 Lovable의 동기화 branch와 제공자의 같은 branch를 비교합니다. 각 label에는 제공자 이름이 들어갑니다. GitHub 프로젝트라면 카드에 다음 상태 중 하나가 표시됩니다.
- In sync with GitHub: Lovable과 GitHub가 같은 commit에 있습니다.
- Lovable is N commits ahead of GitHub: 다음 동기화 때 Lovable이 이 변경 사항을 GitHub에 푸시합니다.
- GitHub is N commits ahead of Lovable: Lovable이 아직 이 commit을 가져오지 않았습니다. 푸시한 뒤에도 이 상태가 계속되면 GitHub, GitLab, Bitbucket의 문제 해결 항목을 따르세요.
- Lovable and GitHub have diverged: Lovable과 GitHub가 서로에게 없는 commit을 각각 갖고 있습니다. Lovable은 동기화 branch 대신 별도의
lovable-syncbranch에 변경 사항을 푸시하고, GitHub에서 다음 동기화가 오면 Lovable 쪽 branch 버전은 GitHub 버전으로 대체됩니다. - Couldn't check GitHub right now 또는 Sync state couldn't be determined: 비교에 실패했거나 Lovable이 비교하는 commit 범위 안에서 두 history가 만나지 않았습니다. 다시 비교하려면 Re-check를 클릭하세요.
Lovable은 양쪽의 최신 commit 50개를 비교하므로 개수가 **50+**로 표시될 수 있습니다. 카드에는 Lovable이 branch를 마지막으로 동기화한 시각과 상태를 마지막으로 확인한 시각도 표시됩니다. Re-check를 클릭하면 branch를 다시 비교하지만 동기화는 수행하지 않습니다.
역할별 권한
- 워크스페이스 owner와 admin은 워크스페이스 연결을 추가·업데이트·삭제하고 commit 기여자 표시(commit attribution)를 켜거나 끕니다.
- 워크스페이스 또는 프로젝트 owner와 admin은 프로젝트를 연결·연결 해제합니다.
- Editor 이상은 동기화 상태를 보고 동기화된 저장소로 작업합니다.
각 작업의 정확한 역할 요구사항은 제공자별 페이지에 나열되어 있습니다.
제공자 선택
각 프로젝트는 하나의 제공자에 있는 하나의 저장소에 링크됩니다. 모든 제공자는 동일한 핵심 양방향 동기화를 지원합니다.
| GitHub | GitLab | Bitbucket | |
|---|---|---|---|
| 호스팅 서비스 | github.com(모든 플랜) | GitLab.com(모든 플랜) | Bitbucket Cloud(모든 플랜) |
| 자체 인프라 | data residency를 갖춘 GitHub Enterprise Cloud, 또는 GitHub Enterprise Server(둘 다 Enterprise 플랜) | self-managed GitLab 인스턴스(모든 플랜) | 지원하지 않음(Bitbucket Data Center 미지원) |
| 연결 방식 | Lovable GitHub 앱(Enterprise Server에서는 자체 사본) | GitLab 계정으로 OAuth | Atlassian 계정으로 OAuth |
| 동기화 branch | 활성 branch: Lovable에서 branch 전환·생성 | 활성 branch: Lovable에서 branch 전환·생성 | 활성 branch: Lovable에서 branch 전환·생성 |
| 저장소 이름 변경 | 자동으로 따라감 | 동기화 중단 | 자동으로 따라감 |
팀이 이미 이 플랫폼 중 하나를 사용한다면 그 플랫폼을 사용하세요.
commit 기여자 표시
Lovable이 푸시하는 commit은 변경을 실행한 워크스페이스 멤버가 작성자로 기록되지 않습니다. GitHub에서는 Lovable GitHub 앱이 commit을 만듭니다. GitLab과 Bitbucket에서는 워크스페이스 연결을 인가한 계정을 통해 푸시됩니다. 각 플랫폼이 변경을 실행한 멤버를 어떻게 기록하는지는 GitHub, GitLab, Bitbucket의 commit 기여자 표시를 참고하세요.
각 변경을 누가 실행했는지 기록하려면 워크스페이스 owner나 admin이 Workspace settings → Git → Commit attribution에서 Include member email addresses in commits를 켤 수 있습니다. 이 설정은 Business와 Enterprise 플랜에서 제공되며 기본적으로 꺼져 있습니다. 다른 플랜에서는 이 섹션이 표시되지 않습니다.
설정이 켜져 있는 동안 Lovable이 멤버를 대신해 만드는 commit에는 commit 메시지 본문에 그 멤버의 이메일 주소가 별도 줄로 들어갑니다.
Add a contact form
X-Lovable-Author-Email: member@example.com모든 commit에 주소가 들어가지는 않습니다. 프로젝트를 게시할 때처럼 Lovable이 스스로 만드는 commit에는 주소가 없으며, 워크스페이스가 아니라 단일 프로젝트에만 초대된 사람의 commit에도 들어가지 않습니다.
이 설정은 변경이 아직 기여자로 기록되지 않는 멤버에게 가장 중요합니다. GitHub 저장소에서는 Lovable이 각 commit을 변경을 실행한 멤버의 GitHub 계정에 공동 기여자로 표시합니다. 그 멤버가 GitHub 계정을 연결했다면 GitHub가 이미 대부분의 commit을 그 멤버의 프로필에 연결합니다. 이 설정은 다음 두 경우에 기록을 추가합니다.
- GitHub 계정을 연결하지 않은 멤버. Lovable이 commit을 공동 기여자로 표시할 수 없으므로, 이 설정이 없으면 저장소에 누가 변경을 실행했는지 기록되지 않습니다.
- GitLab 및 Bitbucket 저장소. Lovable은 이 제공자에서는 co-author 줄을 추가하지 않으므로, 이 설정이 없으면 저장소에 누가 변경을 실행했는지 기록되지 않습니다.
코드 리뷰, 감사, 내부 보고 등을 위해 변경을 사람 단위로 추적해야 할 때 켜세요. 공개 저장소에서는 꺼 두세요.
설정을 끄면 새 commit에 기여자 표시가 중단됩니다. 이미 진행 중인 변경은 시작할 때의 설정대로 마무리됩니다.
공개 저장소에는 권장하지 않습니다. commit 메시지의 이메일 주소는 워크스페이스 외부 사람을 포함해 저장소 기록을 읽을 수 있는 모든 사람에게 보이며, 공개 저장소에서는 인터넷의 누구나 읽을 수 있습니다. Lovable은 Git 기록을 다시 쓸 수 없으므로 이미 푸시한 commit의 주소는 설정을 끈 뒤에도 저장소에 남습니다.
연결 해제와 재연결
프로젝트 연결을 해제하면 동기화만 중지되고 그 밖에는 아무 일도 없습니다.
- 저장소는 모든 기록·파일과 함께 GitHub, GitLab 또는 Bitbucket에 그대로 남습니다.
- 프로젝트와 코드는 Lovable에 유지됩니다. 이후 변경 사항은 Lovable 안에만 저장됩니다.
나중에 프로젝트를 재연결하면 Lovable이 현재 버전의 프로젝트로 새 저장소를 만듭니다. 원래 저장소는 계정에 그대로 남지만 더 이상 링크되지 않습니다.
프로젝트를 다른 제공자로 옮기려면 먼저 연결을 해제하세요. 프로젝트가 링크된 동안 Project settings → Git에는 연결된 제공자의 카드만 표시되며, 예를 들어 "This project syncs with GitHub. A project can use one Git provider at a time - disconnect it to switch." 같은 안내가 카드 아래에 나타납니다. 프로젝트 연결을 해제하면 GitHub, GitLab, Bitbucket 카드가 모두 다시 나타나고 원하는 제공자에 연결할 수 있습니다.
제한 사항
다음은 모든 제공자에 적용됩니다.
- 내보내기만 가능. 기존 저장소를 Lovable로 가져올 수 없습니다. 프로젝트를 연결하면 항상 새 저장소가 생성됩니다.
- 프로젝트당 하나의 저장소. 각 Lovable 프로젝트는 정확히 하나의 제공자에 있는 하나의 저장소에 링크됩니다. 제공자를 바꾸려면 먼저 프로젝트 연결을 해제하세요.
- 한 번에 하나의 branch. 동기화된 branch만 Lovable로 다시 반영됩니다.
- 저장소를 그 자리에 유지. 연결된 저장소를 이동하거나 삭제하지 말고, 저장소가 속한 계정, 조직, 그룹 또는 워크스페이스의 이름을 바꾸지 마세요. 이런 변경은 동기화를 중단합니다. GitHub와 Bitbucket에서는 저장소 자체의 이름 변경을 따라가지만, GitLab에서는 저장소 이름을 바꾸면 동기화가 중단됩니다.
- 재연결 시 새 저장소 생성. 이전에 연결 해제한 저장소를 다시 링크할 수 없습니다.
- 초안은 동기화되지 않음. 초안은 저장소에 branch로 나타나지 않습니다. 초안을 수락하면 다른 프로젝트 변경과 마찬가지로 초안의 코드가 저장소에 반영됩니다.