Close

공유

SVN에서 개발자는 자신의 로컬 컴퓨터에서 작업 중인 사본의 변경사항을 중앙 리포지토리에 커밋하여 자신이 작업한 내용을 공유합니다. 그런 다음 다른 개발자가 업데이트된 내용을 중앙 리포지토리에서 자신의 작업 중인 로컬 사본으로 끌어옵니다(pull).

Git’s collaboration workflow is much different. Instead of differentiating between working copies and the central repository, Git gives each developer their own local copy of the entire repository. Changes are committed to this local repository instead of a central one. To share updates with other developers, you need to push these local changes to a public Git repository on a server. Then, the other developers can pull your new commits from the public repo into their own local repositories.

Git 마이그레이션: 중앙집중형 SVN 개발과 분산형 Git 개발

각 개발자에게 자기만의 완전한 리포지토리를 제공하는 것이 분산형 버전 관리의 핵심이며 그로 인해 다양한 잠재적 작업 흐름이 가능하게 됩니다. 'Git 작업 흐름' 섹션에서 이 같은 작업 흐름에 대해 더 자세히 소개합니다.

지금까지는 로컬 Git 리포지토리만 가지고 작업을 했습니다. 이 페이지에서는 이 로컬 지포지토리를 Bitbucket에서 호스팅되는 공용 리포지토리로 밀어 넣는(push) 방법을 설명합니다. 마이그레이션 중 Git 리포지토리를 공유하면 팀에서는 진행 중인 SVN 개발에 영향을 미치지 않고 Git 명령을 시험할 수 있습니다. 전환을 할 준비가 될 때까지는 공유된 Git 리포지토리를 읽기 전용으로 취급해야 합니다. 개발 내용은 모두 원본 SVN 리포지토리로 게속해서 커밋해야 합니다.


Bitbucket 계정 만들기


Bitbucket 계정이 없다면 하나를 만들어야 합니다. 호스팅은 사용자 최대 5명까지 무료이므로 새 Git 작업 흐름을 즉시 시험할 수 있습니다.

Bitbucket 리포지토리 만들기


이제는 Bitbucket 리포지토리를 만들어야 합니다. Bitbucket을 이용하면 호스팅된 리포지토리를 웹 인테페이스를 통해 쉽게 관리할 수 있습니다. 로그인 후 리포지토리 만들기 버튼만 클릭하면 됩니다.

Create repository within Bitbucket

이어지는 양식에 리포지토리의 이름과 설명을 추가합니다. 프로젝트가 비공개라면 액세스 수준 옵션을 선택하여 지정한 개발자만 복제할 수 있도록 합니다. Forking 필드는 비공개 포크(fork)만 허용을 사용 합니다. 리포지토리 유형은 Git을 사용하고, 사용하고자 하는 프로젝트 관리 도구가 있다면 선택한 후 언어 필드에서프로젝트의 기본 프로그래밍 언어를 선택합니다 .

Create repository fields within Bitbucket
데이터베이스
관련 자료

전체 Git 리포지토리를 이동하는 방법

Bitbucket 로고
솔루션 보기

Bitbucket Cloud에서 Git에 대해 알아보기

리포지토리 만들기 버튼을 클릭해 양식을 제출하면 호스팅되는 리포지토리가 만들어집니다. 리포지토리를 설정하면 기존 프로젝트를 가져오는 데 유용한 명령어에 대해 설명하는 다음 단계 페이지가 나타납니다. 이 페이지의 나머지 부분에서는 이러한 지침을 단계별로 설명할 것입니다.

원본 리모트 추가


로컬 Git 리포지토리에서 방금 만든 Bitbucket 리포지토리로 커밋을 더 쉽게 밀어 넣기(push) 위해서는 Bitbucket 리포지토리의 URL을 리모트에 기록해야 합니다. 리모트란 URL의 편리한 바로가기입니다. 기술적으로, 이 바로가기에는 어떤 이름이든 붙여도 되지만 원격 리포지토리가 프로젝트의 공식 코드 베이스 역할을 한다면 보통 원본이라고 부릅니다. 로컬 Git 리포지토리에서 다음 명령을 실행하면 새 Bitbucket 리포지토리를 원본 리모트로 추가할 수 있습니다 .

git remote add origin https://<username>@bitbucket.org/<workspace-id>/<repo>.git

이때 <username>은 Bitbucket 사용자 이름으로, <workspace-id>는 작업 영역 ID로, <repo>는 Bitbucket 리포지토리 이름으로 바꿔야 합니다. 또한 Bitbucket 웹 인터페이스에서 전체 URL을 복사하여 붙여넣을 수 있습니다.

Git 마이그레이션: 원본 리모트 추가

위 명령을 실행한 후에는 다른 Git 명령에 원본을 사용해 내 Bitbucket 리포지토리를 지칭해도 됩니다.

로컬 리포지토리를 Bitbucket으로 밀어넣기(push)


이제, Bitbucket 리포지토리를 로컬 Git 리포지토리의 내용으로 채울 차례입니다. 이것을 "밀어넣기(Push)"라고 하며 다음 명령을 통해 수행할 수 있습니다.

git push -u origin --all

-u 옵션은 Git에 업스트림 브랜치를 추적하라고 지시합니다. 그러면 Git은 원격 리포지토리의 커밋 이력이 로컬 리포지토리보다 앞인지 뒤인지 알려줍니다. -all 옵션은 모든 로컬 브랜치를 원격 리포지토리로 밀어 넣습니다(Push) .

You also need to push your local tags to the Bitbucket repository with the --tags option:

git push --tags
Git 마이그레이션: Bitbucket 리포지토리로 밀어넣기(Push)

Bitbucket 리포지토리가 이제 로컬 리포지토리의 복제본이 되었습니다. Bitbucket 웹 인터페이스에서 브랜치의 전체 커밋 이력을 모두 탐색할 수 있어야 합니다.

팀과 리포지토리 공유


이제는 Bitbucket 리포지토리의 URL을 리포지토리에 액세스할 필요가 있는 다른 개발자들과 공유하는 것입니다. Git 리포지토리의 URL은 Bitbucket의 리포지토리 홈페이지에서 복사해 붙일 수 있습니다.

Share repository url

리포지토리가 비공개라면 Bitbucket 웹 인터페이스의 관리 탭에서 팀원에게 액세스 권한을 부여해야 합니다. 왼쪽 사이드바에 있는 액세스 관리 링크를 클릭하여 사용자와 그룹을 관리할 수 있습니다.

Git 마이그레이션: Git 리포지토리의 액세스 관리

대안으로, Bitbucket에 내장된 초대 기능을 사용하여 리포지토리를 분기하도록 다른 개발자를 초대할 수 있습니다. 초대 받은 사용자에게는 자동으로 리포지토리 액세스 권한이 부여되므로 권한 부여는 신경쓰지 않아도 됩니다.

리포지토리의 URL이 있으면 다른 개발자가 git clone을 사용하여 리포지토리를 로컬 컴퓨터에 복사하고 프로젝트 작업을 시작할 수 있습니다. 예를 들어, 다른 개발자가 다음 명령을 자신의 로컬 컴퓨터에서 실행하면 <repo>라는 이름의 디렉터리에서 해당 프로젝트가 포함된 새 Git 리포지토리를 찾을 수 있습니다.

git clone https://<username>@bitbucket.org/<workspace-id>/<repo>.git 

Git이 아닌 SVN으로 계속 커밋


이제 로컬 프로젝트를 원격 리포지토리로 푸시할 수 있고 팀은 원격 리포지토리를 사용하여 프로젝트를 로컬 시스템에 복제할 수 있습니다. Git과 공동 작업을 시작하는 데 필요한 모든 도구입니다. 하지만 모두가 전환할 준비가 될 때까지 여러분과 팀은 계속해서 SVN을 사용하여 변경 사항을 커밋해야 합니다.

Git 리포지토리의 변경 사항만 이전 페이지에서 설명한 동기화 프로세스를 사용하여 원래 SVN 리포지토리에서 가져와야 합니다. 사실상 모든 Git 리포지토리(로컬과 원격 모두)가 읽기 전용이라는 뜻입니다. 개발자가 이를 실험한 후 빌드 프로세스에 통합할 수 있지만 Git을 사용하여 영구적인 변경 사항을 커밋하지 않는 것이 좋습니다.

Git 마이그레이션: Git 리포지토리에 대한 변경 사항만 원래 SVN 리포지토리에서 가져와야 합니다

요약


이 단계에서는 Bitbucket 리포지토리를 설정하여 변환된 Git 리포지토리를 다른 개발자들과 공유합니다. 이제 Git 워크플로에 설명된 Git 워크플로를 구현하는 데 필요한 모든 도구를 갖췄습니다. 개발 팀이 Git에 익숙해지는 데 걸리는 시간 동안 SVN 리포지토리를 계속 동기화하고 Git 결과 커밋을 Bitbucket을 통해 공유할 수 있습니다. 그런 다음 SVN 리포지토리를 사용 중지하여 마이그레이션 프로세스를 완료할 수 있습니다.


이 문서 공유
다음 토픽

여러분께 도움을 드릴 자료를 추천합니다.

이러한 리소스에 책갈피를 지정하여 DevOps 팀의 유형에 대해 알아보거나 Atlassian에서 DevOps에 대한 지속적인 업데이트를 확인하세요.

도구로 가득한 벽을 사용하여 협업하는 사람들

Bitbucket 블로그

DevOps 일러스트레이션

DevOps 학습 경로

Atlassian 전문가와 함께 하는 Demo Den 기능 데모

Bitbucket Cloud가 Atlassian Open DevOps와 작동하는 방법

DevOps 뉴스레터 신청

Thank you for signing up