이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

Git을 사용하여 파일 끌어오기(Pull), 밀어넣기(Push), 가져오기(Fetch)

원격 리포지토리로 작업할 때는 다음 워크플로를 사용합니다. Git™의 경우, 로컬 변경 사항을 커밋한 다음 원격 리포지토리에 밀어넣는 두 단계의 워크플로가 있습니다. MATLAB®에서 원격 리포지토리에 액세스할 수 있는 유일한 방법은 끌어오기(Pull), 밀어넣기(Push), 가져오기(Fetch) 메뉴 옵션을 사용하는 것입니다. 선조와 비교(Compare to Ancestor)커밋(Commit)과 같은 다른 모든 동작은 로컬 리포지토리를 사용합니다. 다음 도식은 Git 워크플로를 나타냅니다.

끌어오기(Pull)와 밀어넣기(Push)

최신 변경 사항을 가져오려면 현재 폴더 브라우저를 마우스 오른쪽 버튼으로 클릭하고 소스 컨트롤(Source Control) > 끌어오기(Pull)를 선택하십시오. 끌어오기(Pull) 동작은 최신 변경 사항을 가져온 후 현재 브랜치로 병합합니다. 리포지토리에서 무엇을 가져올지 확실하지 않을 경우에는 먼저 가져오기(Fetch)를 사용하여 변경 사항을 검토한 다음에 수동으로 병합하십시오.

참고

병합하기 전에, 먼저 커맨드 라인 Git을 설치하고 Git에서 충돌 마커를 삽입하지 못하도록 이진 파일을 등록해야 합니다. 커맨드 라인 Git 클라이언트 설치하기 항목을 참조하십시오.

충돌이 있을 경우 끌어오기(Pull)에 실패할 수 있습니다. 변경 사항이 복잡할 경우 원점에서 브랜치를 만들고 호환성 관련 사항을 변경한 다음에 브랜치를 메인 추적 브랜치에 병합할 수도 있습니다.

변경 사항을 로컬 리포지토리로 커밋하려면 현재 폴더 브라우저를 마우스 오른쪽 버튼으로 클릭하고 소스 컨트롤(Source Control) > 변경 사항 확인 및 커밋(View and Commit Changes)을 선택하십시오.

로컬 변경 사항이 원격 추적 브랜치 앞으로 이동되었는지 확인하려면 파일이나 현재 폴더 브라우저의 공백을 마우스 오른쪽 버튼으로 클릭하고 소스 컨트롤(Source Control) > 세부 정보 보기(View Details)를 선택하십시오. Git 정보(Git information) 필드는 커밋한 로컬 변경 사항이 원격 추적 브랜치 앞이나 뒤에 있는지, 아니면 이와 동일한 위치에 있는지를 나타냅니다.

로컬 커밋을 원격 리포지토리에 보내려면 현재 폴더 브라우저에서 마우스 오른쪽 버튼을 클릭하고 소스 컨트롤(Source Control) > 밀어넣기(Push)를 선택하십시오. 리포지토리가 이동해 변경 사항을 직접 밀어넣을 수 없는 경우 메시지가 나타납니다. 모든 변경 사항을 원격 리포지토리에서 가져오려면, 현재 폴더 브라우저에서 마우스 오른쪽 버튼을 클릭하고 소스 컨트롤(Source Control) > 가져오기(Fetch)를 선택하십시오. 브랜치를 병합하고 충돌을 해결하십시오. 그러면 변경 사항을 밀어넣을 수 있습니다.

Git을 사용하면 빈 폴더를 소스 컨트롤에 추가할 수 없으므로, 밀어넣기(Push)를 선택한 후에 빈 폴더를 복제할 수 없습니다. MATLAB에서는 빈 폴더를 만들 수 있지만 변경 사항을 밀어넣은 후 새 샌드박스를 동기화하면 새 샌드박스에 빈 폴더가 나타나지 않습니다. 다른 사용자가 동기화할 수 있도록 빈 폴더를 리포지토리에 밀어넣으려면 폴더에 gitignore 파일을 만든 다음 변경 사항을 밀어넣습니다.

가져오기(Fetch)와 병합하기

가져오기(Fetch)를 사용하여 변경 사항을 가져온 다음 수동으로 병합할 수 있습니다. 최신 변경 사항을 가져온 다음 현재 브랜치로 병합하려면 끌어오기(Pull)을 대신 사용하십시오.

참고

가져온 후에는 병합해야 합니다. 브랜치를 병합하기 전에, 먼저 커맨드 라인 Git을 설치하고 Git에서 충돌 마커를 삽입하지 못하도록 이진 파일을 등록해야 합니다. 커맨드 라인 Git 클라이언트 설치하기 항목을 참조하십시오.

원격 리포지토리에서 변경 사항을 가져오려면 현재 폴더 브라우저에서 마우스 오른쪽 버튼을 클릭하고 소스 컨트롤(Source Control) > 가져오기(Fetch)를 선택하십시오. 가져오기(Fetch)를 하면 로컬 리포지토리의 모든 원본 브랜치를 업데이트합니다. 사용자의 샌드박스 파일은 변경되지 않습니다. 다른 사용자의 변경 사항을 보려면 원본에서의 변경 사항을 사용자의 로컬 브랜치에 병합해야 합니다.

리포지토리에서 원격 추적 브랜치 대비 상대적인 현재 브랜치에 대한 자세한 내용을 보려면 파일이나 현재 폴더 브라우저의 공백을 마우스 오른쪽 버튼으로 클릭하고 소스 컨트롤(Source Control) > 세부 정보 보기(View Details)를 선택하십시오. Git 정보(Git information) 필드는 커밋한 로컬 변경 사항이 원격 추적 브랜치 앞이나 뒤에 있는지, 아니면 이와 동일한 위치에 있는지를 나타냅니다. 메시지 Behind가 표시되면 리포지토리의 변경 사항을 로컬 브랜치에 병합해야 합니다.

예를 들어, 마스터 브랜치에 있는 경우 원격 리포지토리의 마스터 브랜치에서 모든 변경 사항을 가져옵니다.

  1. 현재 폴더 브라우저에서 마우스 오른쪽 버튼을 클릭하고 소스 컨트롤(Source Control) > 가져오기(Fetch)를 선택합니다.

  2. 현재 폴더 브라우저에서 마우스 오른쪽 버튼을 클릭하고 소스 컨트롤(Source Control) > 브랜치(Branches)를 선택합니다.

  3. 브랜치 대화 상자의 브랜치(Branches) 목록에서 origin/master를 선택합니다.

  4. 병합(Merge)을 클릭합니다. 원본 브랜치의 변경 사항이 샌드박스 내의 마스터 브랜치로 병합됩니다.

현재 폴더 브라우저를 마우스 오른쪽 버튼으로 클릭하고 소스 컨트롤(Source Control) > 세부 정보 보기(View Details)를 선택한 경우 Git 정보(Git information) 필드가 Coincident with /origin/master를 나타냅니다. 이제 원격 리포지토리에서 가져오고 병합한 변경 사항을 로컬 샌드박스에서 볼 수 있습니다.

Git 스태시 사용하기

Git 스태시를 생성하면 커밋되지 않은 변경 사항을 저장해뒀다가 나중에 사용할 수 있습니다. 스태시를 사용하면 다음을 수행할 수 있습니다.

  • 수정된 파일을 커밋하지 않고 저장할 수 있습니다.

  • 변경 사항을 새 브랜치로 손쉽게 이동할 수 있습니다.

  • 스태시 내에서 변경 사항을 찾아 검토할 수 있습니다.

스태시를 생성하고 관리하려면 현재 폴더 브라우저에서 Git으로 관리되는 폴더를 연 다음 폴더 화면 공백을 마우스 오른쪽 버튼으로 클릭하고 소스 컨트롤(Source Control) > 스태시(Stashes)를 선택하십시오.

스태시 대화 상자에서는 다음을 수행할 수 있습니다.

  • 현재 수정된 파일을 포함하는 스태시를 생성하려면 새 스태시(New Stash)를 클릭하면 됩니다.

  • 스태시에서 수정된 파일을 보려면 사용 가능한 스태시(Available Stashes)에서 스태시를 선택하면 됩니다. 수정된 파일을 마우스 오른쪽 버튼으로 클릭하여 변경 사항을 보거나 복사본을 저장할 수 있습니다.

  • 현재 브랜치에 스태시를 적용한 후 스태시를 삭제하려면 팝(Pop)을 클릭하면 됩니다.

  • 스태시를 적용하고 유지하려면 적용(Apply)을 클릭하면 됩니다.

  • 스태시를 삭제하려면 드롭(Drop)을 클릭하면 됩니다.

관련 항목