Visual Studio에서 Git 리포지토리 찾아보기 및 분기 비교

Git 변경 내용 창에서는 코드에서 나가지 않고도 코딩하는 동안 Git과 원활하게 상호 작용할 수 있는 방법을 제공합니다. 그러나 Git 리포지토리에 집중하는 것이 더 적합한 경우가 있습니다. 예를 들어 팀에서 작업 중인 내용을 전체적으로 살펴보거나 두 커밋을 비교하여 버그를 조사해야 할 수 있습니다.

GitHub 또는 Azure DevOps와 같이 선택한 Git 공급자를 사용하여 원격으로 작업할 수 있습니다.

로컬 분기와 원격 분기 찾아보기

시작하려면 보기 메뉴에서 Git 리포지토리를 선택하여 Git 리포지토리 창을 열거나 Ctrl+0, Ctrl+R 키보드 단축키를 사용하여 Git 리포지토리 창을 열 수 있습니다. Git 변경 내용 창과 상태 표시줄에서 발신/수신 링크를 선택하여 Git 리포지토리 창에 액세스할 수도 있습니다.

Screenshot that shows the anatomy of the Git Repository window.

Git 리포지토리 창에는 이전 스크린샷에 번호가 매겨진 것과 같이 세 가지 주요 섹션이 있습니다.

  1. 분기: Git에서는 사용자가 분기를 통해 멀티태스킹하고 코드를 실험해 볼 수 있습니다. 동시에 여러 기능을 작업하거나 작업 중인 코드에 영향을 주지 않고 아이디어를 탐색하려는 경우 분기가 도움이 될 수 있습니다.

  2. 그래프: 이 섹션은 분기의 상태를 시각화합니다. 세 개의 하위 섹션이 있습니다.

    • 들어오는 것은 팀이 기여한 들어오는 커밋을 보여 줍니다.
    • 나가는 것은 아직 푸시하지 않은 로컬 커밋을 보여 줍니다.
    • 로컬 기록은 로컬 리포지토리에서 추적한 나머지 커밋을 보여 줍니다.
  3. 커밋: 그래프 섹션에서 커밋을 선택하면 세부 정보가 열립니다. 커밋이 도입한 변경 내용을 선택하여 확인할 수 있으며 이는 차이점을 보여 줍니다. 예를 들어, 이전 스크린샷은 한 커밋이 Resize.cs 파일에 가져온 변경 사항을 보여줍니다.

Alt+위쪽 화살표 또는 Alt+아래쪽 화살표 키보드 단축키를 사용하면 이러한 섹션 사이를 이동할 수 있습니다.

브랜치를 전환하지 않고도 로컬 또는 원격 브랜치를 탐색할 수 있습니다. 집중하려는 커밋을 찾으면 새 탭에서 열기 단추를 선택하여 다른 탭에서 커밋을 엽니다.

Screenshot of how to open a commit on a new tab.

Screenshot of the tab for commit details.

커밋을 전체 화면으로 표시하려면 커밋 탭을 분리하고 최대화 단추를 사용하여 커밋 창을 최대화합니다. Diff 구성(톱니 모양 아이콘)을 선택하여 선호하는 Diff 구성을 선택할 수도 있습니다.

Screenshot of full-screen commit details with diff configurations.

멀티 브랜치 그래프 보기

17.7 버전에 추가됨: Git 리포지토리 창을 열면 단일 브랜치 보기에서 시작합니다. 그런 다음 브랜치를 선택하여 브랜치와 해당 커밋을 모두 멀티 브랜치 그래프 보기에 추가하면 여러 브랜치와 더 효율적으로 상호 작용할 수 있는 시각적 단서를 추가할 수 있다.

Screenshot of the multi-graph branch view in Visual Studio.

로컬 히스토리 뷰의 왼쪽에 선 색상과 브랜치 레이블이 있어 각 브랜치에 속한 커밋을 쉽게 추적할 수 있습니다. 테이블 상단의 브랜치 목록을 사용하여 브랜치 사이를 더 쉽게 스크롤하고 그래프에 어떤 브랜치가 나타나는지 바로 알 수 있습니다.

커밋 비교

분기에 있는 두 커밋을 비교하려면 Ctrl 키를 사용하여 비교하려는 두 커밋을 선택합니다. 그런 다음 브랜치 중 하나를 마우스 오른쪽 버튼으로 클릭하고 커밋 비교를 선택합니다.

Screenshot of how to compare two commits.

Screenshot of compared commits.

커밋 세부 정보와 마찬가지로 새 탭에서 열기 단추를 사용하여 다른 탭에서 비교 항목을 열거나 화면에서 최대화할 수 있습니다.

커밋에서 분기 만들기

Visual Studio에서 Git 리포지토리 창의 Git 그래프 창을 사용하여 이전 커밋에서 분기를 만들 수 있습니다. 이렇게 하려면 새 분기를 만들려는 커밋을 마우스 오른쪽 단추로 클릭한 다음 새 분기를 선택합니다.

Screenshot of the Git Graph pane of the Git Repository window.

참고 항목

이 동작에 해당하는 명령은 git branch <branchname> [<commit-id>]입니다.

분기 비교

브랜치를 비교하면 두 브랜치 간의 차이점에 대한 개요가 표시되므로 풀 리퀘스트를 만들거나 브랜치를 병합하거나 삭제하기 전에 유용하게 사용할 수 있습니다.

Diagram that illustrates how Git compares branches.

Visual Studio를 사용하여 현재 체크 아웃된 분기를 다른 분기와 비교하려면 상태 표시줄에 호스트된 분기 선택기와 Git 변경 도구 창을 활용하여 비교할 로컬 또는 원격 분기를 선택할 수 있습니다. 대상 브랜치를 마우스 오른쪽 버튼으로 클릭하고 현재 브랜치와 비교를 선택합니다. 또는 Git 리포지토리 창에서 분기 목록을 활용하여 동일한 명령에 액세스할 수 있습니다.

Animation that shows the branches comparison entry points.

현재 분기와 비교를 선택하면 변경 내용 목록을 탐색하고 비교할 파일을 선택할 수 있는 분기 비교 환경이 열립니다.

Screenshot that shows how to compare branches by using the diff view.

인라인 Diff를 선호하는 경우, Diff 구성 옵션 톱니바퀴 아이콘을 사용하여 인라인 Diff 보기로 전환할 수 있습니다. Screenshot that shows the Diff Configuration Options that're available to you.

커밋 체크 아웃

커밋을 체크 아웃하는 것은 여러 가지 방법으로 도움이 될 수 있습니다. 예를 들어 코드를 실행하거나 테스트할 수 있는 리포지토리 기록의 이전 지점으로 돌아갈 수 있습니다. 원격 분기(예: 동료의 분기)에서 코드를 검토하려는 경우에도 유용할 수 있습니다. 이렇게 하면 로컬 브랜치에 기여할 계획이 없는 경우 로컬 브랜치를 만들 필요가 없습니다. 이 경우 검토하려는 원격 브랜치의 팁만 확인하면 됩니다.

Diagram that illustrates the Git checkout commit process.

Visual Studio에서 이전 커밋을 체크아웃하려면 Git 리포지토리 창을 열고 돌아가려는 커밋을 마우스 오른쪽 버튼으로 클릭한 다음 체크아웃(-detach)를 선택합니다. 그러면 커밋을 체크아웃하면 분리된 HEAD 상태가 된다는 확인 대화 상자가 표시됩니다. 즉, 리포지토리의 HEAD가 분기 대신 커밋을 직접 가리킬 것임을 의미합니다.

Animation that shows the checkout commit entry points.

이제 헤드 상태가 분리되었으므로 자유롭게 코드를 실행하고 테스트하거나 변경 내용을 탐색하고 커밋할 수 있습니다. 탐색을 마치고 브랜치로 돌아가려면 기존 브랜치를 체크 아웃하여 변경 내용을 삭제하거나 새 브랜치 만들기를 먼저 선택하여 변경 내용을 유지하도록 선택할 수 있습니다.

Important

분리된 헤드 상태에서 만든 커밋은 브랜치에 연결되지 않으며 브랜치를 체크 아웃한 후 Git에 의해 가비지 수집될 수 있다. 따라서 변경 내용을 유지하려면 분기를 체크 아웃하기 전에 새 분기를 만드는 것이 좋습니다. 예를 들어 새 분기를 만들지 않고 Main을 체크 아웃하면 커밋 C5 및 C6이 가비지 수집됩니다. Diagram that illustrates the detached head commits in Git.

분리된 헤드 상태에 대해 자세히 알아보려면 분리된 헤드 Git 문서를 참조하세요.

끌어오기 요청을 신속하게 검토하고 최신 업데이트를 평가하려는 경우 원격 분기의 팁을 확인하는 것이 도움이 될 수 있습니다. Visual Studio에서 이 작업을 수행하려면 먼저 원격 리포지토리에서 최신 업데이트를 가져와야 합니다. 그런 다음 검토하려는 원격 브랜치를 마우스 오른쪽 버튼으로 클릭하고 체크아웃 팁 커밋를 선택합니다.

Screenshot that shows the Checkout Tip Commit option.