Main Content

프로젝트에 소스 컨트롤 사용하기

프로젝트를 사용하여 소스 컨트롤 상태에 있는 파일에 대해 작업을 할 수 있습니다. 소스 컨트롤은 파일을 리포지토리에 저장하므로, 소스 컨트롤을 사용하면 작업할 파일을 리포지토리에서 체크아웃한 후 변경 사항을 보존하기 위해 다시 체크인하고 지금까지 체크인한 파일들의 각 버전 내역을 볼 수 있습니다. MathWorks 제품에서 소스 컨트롤을 사용하는 방법에 대한 자세한 내용은 MATLAB의 소스 컨트롤 연동 항목을 참조하십시오.

프로젝트는 두 개의 소스 컨트롤 시스템 즉, Git™ 및 Subversion®(SVN)과 연동됩니다.

프로젝트에 소스 컨트롤을 사용하도록 설정하려면 다음 워크플로 중 하나를 사용하십시오.

  • 기존 리포지토리에서 새 프로젝트를 만듭니다.

  • 기존 프로젝트를 소스 컨트롤에 추가합니다.

  • 이미 소스 컨트롤 상태에 있는 폴더에서 새 프로젝트를 만듭니다.

  • 새 프로젝트 또는 기존 프로젝트를 위한 새 GitHub® 리포지토리를 만듭니다.

그러면 프로젝트가 소스 컨트롤 상태에 있을 때 MATLAB®에서 파일 체크인/체크아웃, 검사 실행, 변경 사항 커밋, 되돌리기 등 다양한 작업을 수행할 수 있습니다.

MATLAB Online™에서 Subversion 연동은 지원되지 않습니다.

소스 컨트롤 설정하기

프로젝트에 소스 컨트롤을 사용하도록 설정하는 방법에는 네 가지가 있습니다.

기존 리포지토리에서 새 프로젝트 만들기

소스 컨트롤에서 파일을 가져와 기존 리포지토리에서 프로젝트의 새 로컬 복사본을 만드십시오. Git 리포지토리를 복제하거나 SVN 리포지토리에서 파일을 체크아웃하거나 다른 소스 컨트롤 연동을 사용할 수 있습니다.

기존 리포지토리에서 새 프로젝트를 만들려면 다음을 수행하십시오.

  1. 탭에서 새로 만들기 > 프로젝트 > Git에서 또는 새로 만들기 > 프로젝트 > SVN에서를 클릭합니다. "소스 컨트롤에서 새 프로젝트" 대화 상자가 열립니다.

  2. 리포지토리 위치를 아는 경우에는 위치를 리포지토리 경로 필드에 붙여 넣습니다.

    그렇지 않은 경우, 리포지토리 경로를 찾고 경로의 유효성을 검사하여 파일을 가져오려면 변경을 클릭하십시오.

    1. 대화 상자에서 필드에 URL을 입력 또는 붙여넣거나 최근 리포지토리 목록에서 선택하거나 버튼을 클릭하여 리포지토리 URL을 지정합니다.

    2. 유효성 검사를 클릭하여 리포지토리 경로를 확인합니다. 경로가 유효하지 않은 경우 소스 컨트롤 리포지토리 브라우저와 비교하여 URL을 확인합니다.

    3. 리포지토리에 대한 인증 대화 상자가 표시되면 로그인 정보를 입력하여 계속합니다.

    4. 필요한 경우, 리포지토리 트리에서 더 깊숙이 있는 폴더를 선택합니다. SVN을 사용하는 경우 trunk에서 체크아웃하거나 tags 아래의 브랜치 폴더에서 체크아웃할 수 있습니다.

    5. 검색하려는 URL 경로를 지정했으면 확인을 클릭합니다. 대화 상자가 닫히고 "소스 컨트롤에서 새 프로젝트" 대화 상자로 돌아가게 됩니다.

  3. 샌드박스 필드에서 새 프로젝트용으로 가져온 파일을 배치할 작업 폴더를 선택합니다. SVN을 사용하는 경우 최상의 결과를 위해 로컬 폴더를 사용하십시오. 네트워크 폴더를 사용하면 속도가 느립니다.

  4. 가져오기를 클릭합니다.

    리포지토리에 이미 프로젝트가 있는 경우 소스 컨트롤 툴이 사용자가 선택한 샌드박스 폴더로 파일 가져오기를 완료하면 프로젝트를 바로 사용할 수 있습니다.

    샌드박스에 아직 프로젝트가 없는 경우 폴더에 프로젝트를 만들지 여부를 묻는 대화 상자가 표시됩니다. 프로젝트를 만들려면 프로젝트 이름을 지정하고 확인을 클릭하십시오. 새 프로젝트를 설정하는 데 도움이 되는 시작 화면이 표시됩니다. 프로젝트를 설정하는 방법에 대한 자세한 내용은 프로젝트 설정하기 항목을 참조하십시오.

대형 Git 리포지토리를 복제할 때 OutOfMemoryError: Java heap space 같은 오류가 발생하는 경우 다음과 같이 MATLAB 기본 설정을 편집하여 힙 크기를 늘리십시오.

  1. 탭의 환경 섹션에서 기본 설정을 클릭합니다.

  2. MATLAB > 일반 > Java 힙 메모리를 선택합니다.

  3. 슬라이더를 움직여 힙 크기를 늘린 후 확인을 클릭합니다.

  4. MATLAB을 다시 시작합니다.

소스 컨트롤에 기존 프로젝트 추가하기

기존 프로젝트가 있는 경우 이를 Git 또는 SVN 소스 컨트롤에 추가할 수 있습니다.

소스 컨트롤에 프로젝트를 추가하려면 다음을 수행하십시오.

  1. 프로젝트 탭의 소스 컨트롤 섹션에서 소스 컨트롤 사용을 클릭합니다. 소스 컨트롤 정보 대화 상자가 열립니다.

  2. 소스 컨트롤에 프로젝트 추가 버튼을 클릭합니다. 소스 컨트롤에 추가 대화 상자가 열립니다.

  3. 소스 컨트롤 툴 목록에서 리포지토리에 적합한 툴을 선택합니다. Git을 선택한 경우 4단계로 건너뛰고 5단계로 진행하십시오.

  4. SVN 원격 리포지토리를 사용하는 경우 기존 리포지토리를 지정하려면 버튼을 클릭하여 리포지토리를 검색하거나 필드에 URL을 붙여 넣거나 목록에서 최근 리포지토리를 선택합니다.

    유효성 검사를 클릭하여 선택한 리포지토리에 대한 경로를 확인한 다음 확인을 클릭합니다.

  5. 소스 컨트롤에 프로젝트를 추가하는 것을 끝내려면 변환을 클릭합니다.

    프로젝트에서 무결성 검사를 실행합니다.

  6. 무결성 검사 실행이 끝나면 프로젝트 열기를 클릭하여 프로젝트로 돌아갑니다.

    프로젝트에 현재 소스 컨트롤 툴과 리포지토리 위치에 대한 세부 정보가 표시됩니다.

  7. 새 리포지토리를 만든 경우 파일 > 수정됨 보기를 선택한 다음 커밋을 클릭하여 파일의 첫 번째 버전을 새 리포지토리에 커밋합니다. 원하는 경우 대화 상자에서 주석을 입력하고 제출을 클릭합니다.

Git으로 브랜치를 병합하려는 경우 추가 설정 단계를 따라야 합니다. 자세한 내용은 Git 소스 컨트롤 설정하기 항목을 참조하십시오.

내장 버전이 아닌 다른 버전의 SVN을 사용하려면 SVN 소스 컨트롤 설정하기 항목을 참조하십시오.

이미 소스 컨트롤 상태에 있는 폴더에서 새 프로젝트 만들기

이미 소스 컨트롤 상태에 있는 폴더에서 새 프로젝트를 만드는 경우 MATLAB은 소스 컨트롤에 새 프로젝트를 자동으로 추가합니다. 폴더에서 프로젝트를 만드는 방법에 대한 자세한 내용은 프로젝트 만들기 항목을 참조하십시오.

GitHub 리포지토리 생성하기

GitHub 리포지토리를 만들면 Git 소스 컨트롤이 새 프로젝트 또는 기존 프로젝트에 추가됩니다. 생성한 GitHub 리포지토리가 프로젝트 원격 리포지토리가 됩니다. GitHub 리포지토리를 만들려면 GitHub 계정이 있어야 합니다.

빈 프로젝트와 GitHub 원격 리포지토리를 만들려면 다음 단계를 따르십시오.

  1. 탭에서 새로 만들기 > 프로젝트 > Git에서를 클릭합니다.

  2. 새로 만들기 > GitHub 리포지토리를 선택합니다. GitHub 대화 상자에서 사용자 이름개인 액세스 토큰을 입력합니다. 리포지토리 이름 필드와 설명 필드를 입력하고 만들기를 클릭합니다.

    MATLAB은 새 공개 GitHub 리포지토리를 만들고 https://github.com/myusername/mynewrepository 형식으로 리포지토리 경로 필드에 정보를 채웁니다.

  3. 샌드박스 필드에서 샌드박스 위치를 지정합니다. 선택된 폴더는 비어 있어야 합니다. 가져오기를 클릭하여 샌드박스를 만듭니다.

    프로젝트 이름과 생성 여부를 확인하려면 확인을 클릭하십시오.

GitHub 리포지토리와 샌드박스를 만든 후 파일을 샌드박스에 추가합니다. 파일의 첫 번째 버전을 로컬 리포지토리에 커밋한 다음, 모든 수정 사항을 원격 GitHub 리포지토리에 밀어 넣으십시오. 자세한 내용은 MATLAB에서 Git 사용하기 항목을 참조하십시오.

기존 프로젝트를 위한 원격 GitHub 리포지토리를 만들려면 대신 프로젝트를 GitHub에 공유하십시오.

프로젝트를 불러온 상태에서 프로젝트 탭에서 공유 > GitHub를 선택합니다. 자세한 지침은 프로젝트 공유하기의 "GitHub에서 퍼블리시하기"를 참조하십시오.

소스 컨트롤 작업 수행하기

버전 가져오기 및 프로젝트 파일 체크아웃하기

다음 표에는 수정된 프로젝트 파일을 확인하는 방법, 수정본을 업데이트하는 방법, 파일을 잠그고 잠금을 관리하는 방법, 프로젝트 파일에 태그를 지정하는 방법이 나와 있습니다.

동작절차
프로젝트 파일 상태 새로 고치기.

로컬에서 수정한 파일을 확인하려면 프로젝트 탭의 소스 컨트롤 섹션에서 새로 고침을 클릭하십시오. 새로 고침을 수행하면 로컬 샌드박스 상태가 쿼리되고 MATLAB 외부에 있는 또 다른 툴에서 발생한 변경 사항이 확인됩니다.

자세한 내용은 SVN 파일의 상태와 수정본 업데이트하기 또는 MATLAB에서 Git 사용하기 항목을 참조하십시오.

프로젝트 파일의 수정 사항 확인하기.

리포지토리에 새 버전의 프로젝트가 있는지 알아보려면 파일 보기에서 파일을 마우스 오른쪽 버튼으로 클릭한 다음 소스 컨트롤 > 수정 사항 확인을 선택하십시오.

SVN을 사용할 경우 이 옵션을 선택하면 외부 수정 사항을 확인하기 위해 리포지토리에 연결됩니다. 그러면 프로젝트는 로컬 파일의 개정 번호와 리포지토리 버전의 개정 번호를 비교합니다. 리포지토리의 개정 번호가 로컬 샌드박스 폴더의 개정 번호보다 큰 경우 프로젝트는 로컬 파일의 개정 번호 옆에 (최신 버전 아님)을 표시합니다.

모든 프로젝트 파일 업데이트하기.

SVN을 사용할 때 모든 프로젝트 파일의 최신 변경 사항을 가져오려면 프로젝트 탭으로 이동한 다음 소스 컨트롤 섹션에서 업데이트를 클릭하십시오. 그러면 프로젝트는 디스크에서 변경된 모든 파일을 나열하는 대화 상자를 표시합니다. 이 동작은 프로젝트 기본 설정 소스 컨트롤 업데이트 시 변경 내용 표시를 사용하여 조정할 수 있습니다. 자세한 내용은 SVN 파일의 상태와 수정본 업데이트하기 항목을 참조하십시오.

Git을 사용할 때 소스 컨트롤 리포지토리에서 모든 프로젝트 파일의 최신 변경 사항을 가져와 현재 브랜치에 병합하려면, 프로젝트 탭으로 이동한 다음 소스 컨트롤 섹션에서 끌어오기(Pull)을 클릭하십시오. 변경 사항을 수동으로 가져와 병합하려면 프로젝트 탭의 소스 컨트롤 섹션에서 가져오기(Fetch)를 클릭하십시오. 그러면 로컬 리포지토리의 모든 origin 브랜치가 업데이트됩니다. 가져오기(Fetch)를 클릭할 때 샌드박스 파일은 변경되지 않습니다. 다른 사용자의 변경 사항을 보려면 origin에서의 변경 사항을 사용자의 로컬 브랜치에 병합하십시오. 자세한 내용은 MATLAB에서 Git 사용하기 항목을 참조하십시오.

선택한 프로젝트 파일의 수정본 업데이트하기.

선택한 파일 집합을 업데이트하려면 파일 보기에서 파일을 마우스 오른쪽 버튼으로 클릭한 다음 소스 컨트롤 > 업데이트 명령(사용 중인 소스 컨트롤 시스템의 업데이트 명령)을 선택하십시오. 예를 들어, SVN을 사용 중인 경우 소스 컨트롤 > SVN에서 업데이트를 선택하여, 선택한 파일의 새로운 로컬 사본을 리포지토리에서 가져옵니다.

SVN 로그인 정보 지우기저장된 로그인 자격 증명을 지우려면 프로젝트 탭의 소스 컨트롤 섹션에서 로그인 지우기를 클릭하십시오.
SVN 파일 잠그기.

SVN 파일을 잠그려면 파일 보기에서 체크아웃할 파일을 선택하십시오. 선택한 파일을 마우스 오른쪽 버튼으로 클릭하고 소스 컨트롤 > 파일 잠그기를 선택합니다. SVN 소스 컨트롤 열에 자물쇠 기호가 표시됩니다. 한 사용자가 파일에 잠금을 걸어두었을 경우 다른 사용자들은 샌드박스에서 자물쇠 기호를 볼 수 없지만 해당 파일을 잠그거나 변경 사항을 체크인할 수 없습니다. 잠금을 확인하거나 강제 해제하려면 프로젝트 탭에서 잠금을 클릭하십시오.

파일 잠그기는 SVN에서만 사용 가능합니다. Git은 잠금을 사용하지 않습니다.

SVN 리포지토리 잠금 관리하기.

리포지토리의 전역 SVN 잠금을 관리하려면 프로젝트 탭의 소스 컨트롤 섹션에서 잠금을 클릭하십시오. 자세한 내용은 SVN 파일 잠그기 항목을 참조하십시오.

프로젝트 파일 버전에 태그 지정하기.

모든 프로젝트 파일의 특정 수정본을 식별하려면 프로젝트 탭의 소스 컨트롤 섹션에서 태그를 클릭하십시오. 태그 텍스트를 지정하고 확인을 클릭합니다. 태그가 모든 프로젝트 파일에 추가됩니다. 리포지토리에 tags 폴더가 없는 경우에는 오류가 나타납니다. 자세한 내용은 SVN 소스 컨트롤 설정하기 항목을 참조하십시오.

프로젝트 파일의 변경 내용 검토하기

파일 > 수정됨 보기에서 프로젝트 파일의 변경 내용을 검토할 수 있습니다. 다음 표에는 수정된 프로젝트 파일의 목록을 확인하는 방법, 파일 내역을 검토하는 방법, 두 파일의 수정본을 비교하는 방법이 나와 있습니다.

동작절차
수정된 프로젝트 파일 확인하기.

파일 보기에서 수정됨(파일 개수) 탭을 선택합니다. 파일 > 수정됨 보기는 프로젝트에 소스 컨트롤을 사용하는 경우에만 표시됩니다.

폴더를 확장하지 않고 파일을 보려면 목록 레이아웃을 사용하십시오.

소스 컨트롤 요약 상태를 통해 수정된 파일 또는 충돌이 난 폴더의 내용을 식별할 수 있습니다. 파일 보기에서는, 접혀 있던 소스 컨트롤 상태가 폴더에 표시됩니다. 따라서 파일의 변경 사항 특히, 충돌이 난 파일의 변경 사항을 쉽게 찾을 수 있습니다. 폴더의 소스 컨트롤 상태(예: Git 또는 SVN 열)에 마우스를 올려놓으면 수정되거나 충돌이 나거나 추가 또는 삭제된 파일 개수를 보여주는 툴팁을 볼 수 있습니다.

수정된 파일 목록 업데이트하기.

수정된 파일 목록을 업데이트하려면 프로젝트 탭의 소스 컨트롤 섹션에서 새로 고침을 클릭하십시오.

수정 이력 보기.

파일 보기에서 파일을 마우스 오른쪽 버튼으로 클릭한 다음 소스 컨트롤 > 수정본 표시를 선택합니다.

커밋된 SVN 변경 세트에서 파일을 검색하고 변경하려면 프로젝트 탭의 소스 컨트롤 섹션에서 로그 표시를 선택하십시오. 파일 수정본 대화 상자에서 수정본을 선택하여 수정된 파일의 목록을 봅니다. 하단 목록에서 파일을 마우스 오른쪽 버튼으로 클릭하여 변경 내용을 보거나 수정본을 저장합니다.

수정본 비교하기.

파일 보기에서 파일을 마우스 오른쪽 버튼으로 클릭한 다음 비교 > 선조와 비교를 선택하여 로컬 리포지토리와 비교(Git의 경우)하거나 샌드박스에서 마지막으로 체크아웃한 버전과 비교(SVN의 경우)하는 작업을 실행합니다. 비교 툴에 리포트가 표시됩니다.

파일의 다른 수정본을 비교하려면 비교 > 수정본과 비교를 선택하십시오.

비교 리포트를 확인하려면 비교할 수정본을 선택하고 선택한 파일 비교를 클릭하십시오. 또는 수정본을 하나 선택하고 로컬 파일과 비교를 클릭합니다. 자세한 내용은 파일과 폴더 비교하기 및 파일 병합하기 항목을 참조하십시오.

프로젝트 정의 파일.  resources/project 폴더의 파일은 처음으로 프로젝트를 만들거나 변경했을 때 생성된 프로젝트 정의 파일입니다. 프로젝트 정의 파일을 사용하여 파일을 체크아웃하지 않고도 파일에 프로젝트 메타데이터를 추가할 수 있습니다. 바로 가기, 레이블, 프로젝트 설명과 같은 메타데이터는 이 방법으로 변경할 수 있습니다. 또한 프로젝트 정의 파일은 프로젝트에 추가되는 파일을 지정합니다. 이 파일들은 프로젝트의 일부가 아닙니다.

프로젝트를 변경하면 resources/project 폴더에 변경이 발생합니다. 프로젝트 정의 파일은 프로젝트 정의를 XML 파일(형식이 변경될 수 있음)로 저장합니다.

소스 컨트롤 툴에서 병합이 필요한 경우가 아니면 프로젝트 정의 파일을 직접 확인할 필요가 없습니다. 소스 컨트롤 시스템에 커밋되는 모든 파일에 대해 알고 싶을 때 프로젝트 정의 파일을 표시합니다.

R2020b부터 디폴트 프로젝트 정의 파일 유형은 여러 프로젝트 파일 사용(고정 경로 길이)입니다. 프로젝트 정의 파일 관리를 프로젝트 생성 시 선택한 유형에서 변경하려면 matlab.project.convertDefinitionFiles를 사용하십시오. matlab.project.convertDefinitionFiles는 프로젝트의 소스 컨트롤 내역을 유지합니다.

경고

병합 문제를 방지하려면 한 프로젝트에 대해 정의 파일 유형을 두 번 이상 변환하지 마십시오.

R2020b 이전 릴리스에서 프로젝트 생성 시 선택한 유형에서 프로젝트 정의 파일 관리를 변경하려는 경우 다음을 수행하십시오.

  1. 탭의 환경 섹션에서 기본 설정을 클릭합니다. MATLAB > 프로젝트를 선택하고 새 프로젝트 섹션에서 프로젝트 정의 파일 아래의 옵션 중 하나를 선택합니다.

    • 여러 프로젝트 파일 사용 - 공유 프로젝트에 대해 병합 작업을 할 때 파일 충돌을 방지할 수 있습니다.

    • 여러 프로젝트 파일 사용(고정 경로 길이) - 긴 경로로 작업해야 하는 경우에 적합합니다.

    • 하나의 프로젝트 파일 사용(소스 컨트롤에는 권장하지 않음) - 더 빠르지만, 두 사용자가 같은 프로젝트의 변경 사항을 소스 컨트롤 툴에 제출할 때 병합 문제를 일으킬 가능성이 높습니다.

  2. 프로젝트 아카이브 파일(.mlproj)을 만듭니다. 자세한 내용은 프로젝트 공유하기 또는 export를 참조하십시오.

  3. 보관된 프로젝트에서 새 프로젝트를 만듭니다. 자세한 내용은 프로젝트 만들기 항목을 참조하십시오.

프로젝트가 포함된 폴더를 더 이상 관리하지 않고 resources/project 폴더를 삭제하려면 matlab.project.deleteProject 항목을 참조하십시오.

프로젝트 검사 실행하기

프로젝트에 대해 검사를 실행하려면 프로젝트 탭에서 아래쪽 화살표를 클릭하여 갤러리를 확장합니다. 프로젝트 검사에서 프로젝트 검사를 클릭합니다. 그러면 프로젝트 무결성에 문제가 있는지(예: 누락된 파일, 저장되지 않은 파일 또는 소스 컨트롤 상태에 있지 않은 파일) 확인하기 위한 검사가 실행됩니다. 대화 상자에 결과가 보고됩니다. 세부 정보를 클릭하고 표시되는 메시지를 따라 문제를 해결할 수 있습니다.

필요한 파일을 확인하려면 종속성 분석기를 클릭하여 수정된 파일의 종속성을 분석하십시오. 프로젝트 구조를 분석하려면 종속성 툴을 사용하십시오.

검사를 통해 해결할 수 있는 문제에 대한 자세한 내용은 프로젝트에서 파생 파일 사용하기 항목과 프로젝트 종속성 분석하기 항목을 참조하십시오.

수정된 프로젝트 파일 커밋하기

변경 사항 검토와 프로젝트 검사 실행이 끝나면 수정된 프로젝트 파일을 소스 컨트롤에 커밋할 수 있습니다. 다음 표에는 수정된 프로젝트 파일을 커밋하는 방법이 나와 있습니다.

동작절차
수정된 모든 파일을 소스 컨트롤에 커밋하기.

파일 보기에서 수정됨(파일 개수) 탭을 선택합니다. 프로젝트 탭의 소스 컨트롤 섹션에서 커밋을 클릭합니다. 대화 상자에 주석을 입력하고 제출을 클릭합니다. Git 소스 컨트롤을 사용 중인 경우에는 로컬 리포지토리에 커밋됩니다. SVN 소스 컨트롤을 사용 중인 경우에는 변경 내용이 리포지토리에 커밋됩니다.

리포지토리가 이동해 커밋할 수 없는 경우에는 메시지가 나타납니다. 파일을 커밋하려면 먼저 파일의 수정본을 현재 HEAD 수정본으로 업데이트해야 합니다. Git 소스 컨트롤을 사용 중인 경우 끌어오기(Pull)을 클릭합니다. SVN 소스 컨트롤을 사용 중인 경우에는 업데이트를 클릭합니다. 커밋하기 전에 남아 있는 충돌을 해결하도록 합니다.

선택한 파일을 소스 컨트롤에 커밋하기.

파일 보기에서 파일을 선택하고 마우스 오른쪽 버튼으로 클릭한 다음 소스 컨트롤 > 커밋을 선택합니다.

파일을 개별적으로 커밋하면 파일을 추적하는 관련 프로젝트 정의 파일이 커밋되지 않을 위험이 있습니다. 이를 방지하기 위해 수정된 모든 파일을 커밋하십시오.

Git을 사용하여 프로젝트 파일 밀어넣기.

원격 리포지토리에 로컬 커밋을 보내려면 프로젝트 탭의 소스 컨트롤 섹션에서 밀어넣기(Push)를 클릭하십시오. 리포지토리가 전진하여 변경 사항을 직접 밀어 넣을 수 없는 경우 메시지가 나타납니다. 원격 리포지토리에서 모든 변경 사항을 가져오려면 가져오기(Fetch)를 클릭하십시오. 브랜치를 병합하고 충돌을 해결하십시오. 그러면 변경 사항을 밀어 넣을 수 있습니다. 자세한 내용은 MATLAB에서 Git 사용하기 항목을 참조하십시오.

Git을 사용하여 빈 프로젝트 폴더 밀어넣기.

빈 폴더를 Git 소스 컨트롤에 추가할 수 없으므로, 밀어넣기(Push)를 클릭한 후에 빈 폴더를 복제할 수 없습니다. 프로젝트에서는 빈 폴더를 만들 수 있지만 변경 사항을 밀어 넣은 후 새 샌드박스를 동기화하면 새 샌드박스에 빈 폴더가 나타나지 않습니다. 대신 빈 폴더를 자동으로 생성하는 프로젝트 검사를 실행합니다.

또는 다른 사용자가 동기화할 수 있도록 빈 폴더를 리포지토리에 밀어 넣으려면 폴더에 gitignore 파일을 만든 다음 변경 사항을 밀어 넣습니다.

Git 스태시 만들기.

Git 스태시는 커밋되지 않은 변경 사항을 나중에 사용할 수 있도록 저장합니다. 스태시를 만들려면 프로젝트 탭의 소스 컨트롤 섹션에서 스태시를 클릭하십시오. 스태시 대화 상자가 열립니다. 새 스태시를 클릭하여, 현재 수정된 파일을 포함하는 스태시를 만듭니다. 자세한 내용은 커밋되지 않은 변경 사항을 Git 스태시를 사용하여 저장하기 항목을 참조하십시오.

Git을 사용하여 브랜치 만들기.

브랜치를 만들려면 프로젝트 탭의 소스 컨트롤 섹션에서 브랜치를 클릭하십시오. 브랜치 보기, 전환, 생성 및 병합을 수행할 수 있는 브랜치 대화 상자가 나타납니다.

새 브랜치의 소스를 선택합니다. 브랜치 브라우저 도식에서 노드를 클릭하거나 소스 텍스트 상자에 고유한 식별자를 입력합니다. 특정 커밋을 식별할 수 있도록 SHA1 해시의 태그, 브랜치 이름, 고유 접두사 중 하나를 입력할 수 있습니다(예: 73c637). 현재 브랜치의 헤드에서 브랜치를 만들도록 디폴트 값은 그대로 둡니다. 브랜치 이름 텍스트 상자에 이름을 입력하고 만들기를 클릭합니다.

Git을 사용하여 브랜치 전환, 비교, 저장, 병합하기.

브랜치를 전환, 비교, 저장, 병합하려면 프로젝트 탭의 소스 컨트롤 섹션에서 브랜치를 클릭하십시오. 브랜치 보기, 전환, 생성 및 병합을 수행할 수 있는 브랜치 대화 상자가 나타납니다. 자세한 내용은 Git을 사용해 브랜치 만들고 병합하기 항목을 참조하십시오.

충돌 문제 해결하기.

두 명의 사용자가 다른 샌드박스나 다른 브랜치에서 동일한 파일을 변경하는 경우, 수정된 파일을 커밋하려고 하면 충돌 메시지가 나타납니다. 필요한 경우 충돌 마커를 추출하고, 충돌을 일으키는 차이점을 비교하고, 충돌을 해결합니다. 충돌이 난 파일이 여러 개 있는 경우 Determine Order for Resolving Conflicts Using Dependency Analyzer 항목을 참조하십시오.

파일 > 수정됨 보기에서 충돌이 난 파일을 찾습니다. 소스 컨트롤 요약 상태를 통해 충돌이 난 폴더의 내용을 식별합니다. 접혀 있던 소스 컨트롤 상태가 폴더에 표시됩니다. 따라서 파일의 변경 사항 특히, 충돌이 난 파일의 변경 사항을 쉽게 찾을 수 있습니다. 폴더의 소스 컨트롤 상태에 마우스를 올려놓으면 수정되거나 충돌이 나거나 추가 또는 삭제된 파일 개수를 표시하는 툴팁을 볼 수 있습니다.

폴더를 확장하지 않고 파일을 보려면 목록 레이아웃을 사용하십시오.

소스 컨트롤 상태 열(Git 또는 SVN)에서 충돌을 나타내는 빨간색 경고 기호가 있는 파일이 있는지 확인합니다. 충돌이 난 파일을 마우스 오른쪽 버튼으로 클릭하고 충돌 보기를 선택하여 버전을 비교합니다. 충돌이 난 파일 간의 차이점을 보여주는 비교 리포트가 열립니다.

변경 사항을 해결하여 사용자의 샌드박스에서 버전을 커밋하려는 경우, 파일을 마우스 오른쪽 버튼으로 클릭하고 소스 컨트롤 > 충돌을 해결 상태로 표시를 선택합니다.

Git의 경우 Git 창에서 브랜치 상태가 MERGING에서 SAFE로 바뀝니다.

변경 사항을 확인하려면 파일 > 수정됨 보기를 선택하십시오.

변경 사항 되돌리기

다음 표에는 프로젝트 파일의 변경 사항을 되돌리는 방법이 나와 있습니다. 변경 사항을 되돌리는 방법에 대한 자세한 내용은 SVN 소스 컨트롤의 변경 사항 되돌리기MATLAB에서 Git 사용하기 항목을 참조하십시오.

동작절차
로컬 변경 사항 되돌리기.

잠금을 풀고 마지막 샌드박스 업데이트의 버전(즉, 마지막으로 리포지토리에서 동기화했거나 가져온 버전)으로 되돌리려면, 파일 보기에서 되돌릴 파일을 마우스 오른쪽 버튼으로 클릭한 다음 소스 컨트롤 > 로컬 변경 사항을 폐기한 후 잠금 풀기를 선택하십시오.

Git을 사용 중일 때 로컬 변경 사항을 폐기하려면 소스 컨트롤 > 로컬 변경 사항 되돌리기를 선택하십시오. 로컬 변경 사항을 모두 제거하려면 Git 창에서 브랜치를 클릭한 후 HEAD로 되돌리기를 클릭하십시오.

지정한 수정본으로 파일 되돌리기.

지정한 수정본으로 파일을 되돌리려면 파일을 마우스 오른쪽 버튼으로 클릭한 다음 소스 컨트롤 > SVN을(를) 사용하여 되돌리기 또는 소스 컨트롤 > Git을(를) 사용하여 되돌리기를 선택하십시오.

파일 되돌리기 대화 상자에서 어느 수정본으로 되돌릴지 선택합니다. 수정본을 선택하여 작성자, 날짜, 로그 메시지와 같은 변경 사항에 대한 정보를 확인합니다. 되돌리기를 클릭합니다.

파일을 이전 수정본으로 되돌린 후에 변경하는 경우, 리포지토리 내역의 충돌을 해결할 때까지 파일을 커밋할 수 없습니다.

지정한 수정본으로 프로젝트 되돌리기(SVN 소스 컨트롤만 해당).

지정한 수정본으로 프로젝트를 되돌리려면 프로젝트 탭의 소스 컨트롤 섹션에서 프로젝트 되돌리기를 클릭하십시오. 파일 되돌리기 대화 상자에서 어느 수정본으로 되돌릴지 선택합니다.

목록에 있는 각 수정본이 수정된 파일의 변경 세트입니다. 수정본을 선택하여 작성자, 날짜, 로그 메시지와 같은 변경 사항에 대한 정보를 확인합니다.

선택한 수정본의 정보가 올바르다고 판단되면 되돌리기를 클릭하십시오.

프로젝트에서 파생 파일 사용하기

일반적으로 파생된 파일과 임시 파일은 프로젝트에서 생략하거나 소스 컨트롤에서 제외시키는 것이 좋습니다. 파생된 파일이나 임시 파일을 검사하려면 프로젝트 탭에서 아래쪽 화살표를 클릭하여 갤러리를 확장합니다. 프로젝트 검사에서 프로젝트 검사를 클릭합니다. 프로젝트에 slprj 폴더를 추가한 경우 프로젝트 검사 결과는 프로젝트에서 이 폴더를 제거하고 수정할 것을 권고합니다.

또한 .mex*, slprj 폴더, sccprj 폴더 또는 다른 코드 생성 폴더의 내용과 같이 파생된 파일은 문제를 야기할 수 있기 때문에 소스 컨트롤에서도 제외시키는 것이 좋습니다. 예를 들면 다음과 같습니다.

  • 파일을 잠글 수 있는 소스 컨트롤 시스템을 사용할 경우 충돌이 발생할 수 있습니다. slprj가 소스 컨트롤 상태에 있을 때 코드를 생성하면 slprj 아래에 있는 대부분의 파일이 변경되고 잠깁니다. 다른 사용자는 파일 권한 오류로 인해 코드를 생성할 수 없습니다. slprj 폴더는 코드 생성을 통해 시뮬레이션에도 사용되므로, 이런 파일을 잠그면 팀에 영향을 미칠 수 있습니다. .mex*와 같은 이진 파일에서도 같은 문제가 발생합니다.

  • 종종 slprj를 삭제해야 하는 경우도 있습니다. 그러나 폴더가 일부 소스 컨트롤 툴 상태(예: SVN)에 있을 때 slprj를 삭제하면 “not a working copy“ 오류 같은 문제가 발생합니다.

  • 개발 공정의 산출물로 생성된 코드를 체크인하려면 slprj 캐시 폴더에 있는 일부 파일을 프로젝트에 속한 별도 위치에 복사하는 것이 보통입니다. 이런 식으로 필요할 때 임시 캐시 폴더를 삭제할 수 있습니다. 생성된 코드 파일을 표시하려면 packNGo (MATLAB Coder) 함수를 사용하고, 그 파일을 올바른 메타데이터와 함께 프로젝트에 추가하려면 프로젝트 API를 사용하십시오.

  • slprj 폴더에 작은 크기의 파일이 많을 수 있습니다. 이때 이러한 파일이 최신 상태인지 확인하기 위해 각 파일을 체크인할 경우 소스 컨트롤 툴의 성능이 저하될 수 있습니다.

변경 사항이 저장되지 않은 프로젝트 파일 찾기

프로젝트에 변경 사항이 저장되지 않은 파일이 있는지 확인할 수 있습니다. 프로젝트 탭에서 아래쪽 화살표를 클릭하여 갤러리를 확장합니다. 프로젝트 검사에서 저장되지 않은 변경 내용 표시를 클릭합니다.

저장되지 않은 변경 내용 대화 상자에서 변경 사항이 저장되지 않은 프로젝트 파일을 볼 수 있습니다. 프로젝트는 MATLAB 편집기 및 Simulink® 편집기에서 편집되고 저장되지 않은 변경 사항만 감지합니다. 다른 툴에서 편집된 변경 사항은 수동으로 검사해야 합니다. 참조된 프로젝트가 있는 경우 프로젝트별로 파일이 그룹화됩니다. 감지된 변경 사항을 모두 저장하거나 폐기할 수 있습니다.

프로젝트를 닫을 때 열려 있는 파일 관리하기

프로젝트를 닫을 때 변경 사항이 저장되지 않은 파일이 있는 경우 변경 사항을 저장할지 아니면 폐기할지 묻는 메시지가 표시됩니다. 변경 사항이 저장되지 않은 모든 파일을 볼 수 있으며, 참조된 프로젝트가 있는 경우 파일이 프로젝트별로 그룹화되어 표시됩니다. 작업 손실을 방지하기 위해 변경 사항을 파일별로, 프로젝트별로, 또는 전역적으로 저장하거나 폐기할 수 있습니다.

이 동작을 제어하려면 탭의 환경 섹션에서 기본 설정을 클릭하십시오. MATLAB > 프로젝트로 이동한 다음 프로젝트 종료 섹션에서 열려 있는 프로젝트 모델을 확인하여 미저장된 변경이 없으면 닫기 레이블의 체크박스를 선택하거나 선택 해제합니다.

관련 항목