기존 프로젝트를 GitHub로 마이그레이션하려면 어떻게 해야 합니까?

완료됨

여기서는 레거시 버전 제어 시스템에서 프로젝트를 GitHub로 마이그레이션할 때의 중요 고려 사항을 살펴봅니다.

GitHub로 마이그레이션하는 이유는 무엇일까요?

수많은 문헌에서 GitHub의 장점을 극찬합니다. 이동하도록 설득하는 것은 이 모듈의 범위를 벗어납니다. 하지만, 마이그레이션을 계획할 때 고려해야 할 항목의 컨텍스트에서 몇 가지 주요 이점을 요약해 보겠습니다.

버전 제어

GitHub는 아마도 최고의 버전 제어 시스템인 Git을 독점으로 사용합니다. 그러나 Git은 믿을 수 없을 정도로 정교하며 팀이 경험하지 못한 코드 작업에 대한 몇 가지 복잡한 시나리오를 제시할 수 있습니다. 분기끌어오기 요청은 Git를 사용하는 개발자가 일상적으로 사용하는 필수 요소이며, 따라서 GitHub를 성공적으로 사용하려면 두 요소를 언제 어떻게 사용해야 하는지를 알아야 합니다. 순조롭게 시작하려면 팀은 먼저 GitHub 흐름에 익숙해져야 합니다.

클라우드에 코드 유지

많은 프로젝트 코드가 회사 방화벽으로 보호하는 레거시 버전 제어 시스템에 계속 저장됩니다. GitHub로 마이그레이션하면 팀 멤버가 어디서나 쉽게 액세스할 수 있는 GitHub의 클라우드 플랫폼으로 코드를 옮기게 됩니다. 이렇게 하면 버전 제어에서 유지하는 파일 및 데이터 유형에 대한 팀의 정책을 검토할 수 있습니다. 가장 좋은 방법은 GitHub에 커밋한 모든 내용이 손상되었을 수 있다고 가정하는 것입니다. API 키, 암호 또는 유사한 정보를 포함하는 다른 파일과 같은 중요한 데이터를 포함하지 않아야 합니다.

참고 항목

GitHub는 퍼블릭 및 프라이빗 리포지토리를 모두 제공하며 리포지토리의 다양한 부분에 대한 세분화된 액세스 제어도 제공합니다. 이렇게 하면 프로젝트를 볼 수 있는 사용자 및 특정 사용자가 수행할 수 있는 작업을 제어할 수 있습니다.

협업

GitHub는 문제, 끌어오기 요청 및 코드 검토 같은 기능을 이용해 팀 협업을 완벽하게 지원합니다. 하지만 GitHub 흐름은 팀이 익숙하게 느끼는 현재 관행과 다를 수 있습니다. 마이그레이션을 완료하기 전에 팀이 GitHub를 도입할지 지정된 프로세스 유지할지, 또는 중간 지점에서 타협할지를 고려하는 것이 좋습니다.

프로젝트가 외부 기여자를 허용하는 오픈 소스 프로젝트라면 GitHub가 이점을 극대화하는 최고의 방법입니다.

GitHub로의 마이그레이션

계획 고려 사항

GitHub에 마이그레이션하기 전에 고려해야 하는 가장 중요한 사항은 원본의 현재 상태 이외 정보의 유지 여부입니다. 현재 원본을 그대로 사용하여 새 프로젝트를 시작해도 된다면 가장 좋은 방법은 이를 새 프로젝트처럼 취급하고 원본을 리포지토리에 업로드하는 것입니다.

하지만 버전 제어 기록을 유지하려면 GitHub Migrator 도구를 사용하여 가져와야 합니다. 여러 버전 제어 플랫폼에서의 가져오기 지원에 관한 자세한 내용은 타사 버전 제어 시스템에서 데이터 가져오기를 참조하세요.

Git 데이터 외에도 문제, 끌어오기 요청 또는 기타 데이터를 보존할 수도 있습니다. 이러한 항목에 대한 지원은 플랫폼에 따라 다르며 일반적으로 커뮤니티 프로젝트에서 사용할 수 있습니다. 이 모듈에서는 Git이 아닌 데이터 마이그레이션에 대해서는 다루지 않습니다.

프로젝트에 현재 저장된 이진 파일 처리

모범 사례는 GitHub 리포지토리를 프로젝트 빌드에 필요한 파일에 제한하는 것입니다. 빌드 아티팩트 같은 대형 이진 파일은 커밋해서는 안 됩니다. 스프레드시트 및 프레젠테이션 같은 이진 파일은 이러한 파일을 적절하게 제공하고 버전을 지정하는 포털에서 더 잘 추적할 수 있습니다. 대형 이진 파일의 버전을 관리해야 하는 경우 Git LFS(Large File Storage) Git 확장 사용을 사용해 보세요.

중요 Git 파일(예: .gitignore) 만들기

Git은 파일 정책 버전 제어를 더 잘 실행할 수 있도록 .gitignore 파일을 지원합니다. 이러한 파일은 소스 제어 추적에서 파일과 폴더를 제외하는 데 사용하는 검색 패턴을 정의합니다. 다음 간단한 예에서는 소스 제어 추적에서 Bin 또는 bin이라는 이름의 모든 폴더를 반복해서 제외합니다.

[Bb]in/

파일 무시에 대해 자세히 알아볼 수 있습니다. gitignore 리포지토리에서 다양한 플랫폼에 제공되는 시작 .gitignore 파일 컬렉션도 확인할 수 있습니다.

GitHub 프로젝트에서는 리포지토리 소비자 및 기여자에게 다양한 정책을 설명해 주는 다른 파일을 자주 사용합니다. 프로젝트가 비공개이며 대상이 제한적이라 하더라도 이러한 정책을 명확하게 설명하면 도움이 됩니다. 이러한 파일은 필수는 아니지만 자주 사용하는 파일을 여기에서 확인할 수 있습니다.

파일 용도
README.md 디렉터리의 방문 페이지입니다. 이 페이지는 GitHub에서 관련 디렉터리를 볼 때 렌더링됩니다.
LICENSE.md 코드가 제공된 라이선스입니다.
CONTRIBUTING.md 끌어오기 요청 예상 같은 프로젝트에 사용자가 어떻게 기여해야 하는지를 설명합니다.
SECURITY.md 프로젝트에 대한 보안 정책을 설명합니다. 처리되기 전에 공개되어서는 안 될 중요한 보안 관련 코드나 피드백을 제출하려는 사용자에게 지침을 제공합니다.

정상적인 기여를 위한 프로젝트 설정에 대해 자세히 알아보세요.

GitHub로 프로젝트 가져오기

마이그레이션을 위해 리포지토리를 준비한 후 GitHub 리포지토리의 코드 탭으로 이동합니다. 코드 가져오기 옵션을 사용하여 소스 리포지토리를 지정합니다.

GitHub 리포지토리로 코드를 가져오는 스크린샷

GitHub Migrator 도구가 나머지 작업을 처리합니다.

GitHub Migrator 도구의 스크린샷