Visual Studio에서 Git 리포지토리 관리

Git 리포지토리 창은 Git 리포지토리를 관리하고 팀 프로젝트를 최신 상태로 유지하는 데 도움이 되는 전체 화면 Git 환경을 제공합니다. 예를 들어 커밋을 다시 설정하거나, 되돌리거나, Cherry-Pick할 수 있고, 커밋 기록을 정리할 수도 있습니다. Git 리포지토리 창은 분기를 시각화하고 관리하기에도 좋은 곳입니다.

Git를 사용하면 Visual Studio로 버전을 쉽게 제어할 수 있습니다. 또한 GitHub 또는 Azure DevOps와 같이 선택한 Git 공급자를 사용하여 원격으로 작업할 수 있습니다. 또는 공급자 없이 로컬로 작업할 수 있습니다.

Git 리포지토리 창 열기

Git 리포지토리 창을 열려면 보기>Git 리포지토리를 선택하거나 (혹은 Ctrl+0, Ctrl+R을 누르거나), Ctrl+Q를 누르고 기능에서 Git 리포지토리를 검색합니다.

마지막 커밋 변경(수정)

마지막 커밋 업데이트는 Git에서 수정이라고 하며 일반적인 사용 사례입니다. 커밋 메시지를 업데이트하거나 마지막 순간에 변경을 추가해야 할 수 있습니다.

이때 다음 명령을 사용하여 명령줄에서 커밋을 수정할 수 있습니다.

git commit --amend

Git 리포지토리 창을 사용하면 가장 최근의 커밋 메시지를 쉽게 업데이트할 수 있습니다. 마지막 커밋을 두 번 클릭하여 커밋 정보를 연 다음, 커밋 메시지 옆의 편집 옵션을 클릭하면 됩니다.

커밋 메시지 편집의 스크린샷

커밋 메시지 편집이 끝나면 수정을 선택합니다.

수정을 클릭하여 편집한 메시지를 저장하는 스크린샷

마지막 커밋에 코드 변경 내용을 포함해야 하는 경우 Git 변경 내용 창에서 이 작업을 수행할 수 있습니다. 수정 확인란을 선택한 다음, 변경 내용을 커밋합니다.

Git 변경 내용 창을 사용하여 코드 변경 내용을 수정하는 스크린샷

최신 항목 이외의 커밋 메시지를 변경하는 방법을 포함하여 수정에 대한 자세한 내용은 Git 웹 사이트에서 Git 도구 - 기록 다시 쓰기를 참조하세요.

병합 커밋(Squash)

Git은 일련의 커밋을 병합할 수 있도록 여러 개의 커밋을 하나의 커밋으로 Squash하는 옵션을 제공합니다. 이 옵션은 빈번한 커밋으로 인해 커밋이 많아진 상황에서 원격 리포지토리로 푸시하기 전에 정리하려는 경우에 유용합니다.

명령줄에서 다음 명령을 사용하여 두 개의 커밋을 Squash할 수 있습니다.

git rebase -i HEAD~2

그런 다음 picksquash로 업데이트하여 커밋 메시지를 저장 및 업데이트합니다.

Pick을 Squash로 업데이트하는 스크린샷

Visual Studio에서 커밋을 병합하려면 Ctrl 키를 사용하여 병합할 여러 커밋을 선택합니다. 그런 다음, 마우스 오른쪽 단추를 클릭하고 Squash 커밋을 선택합니다. Visual Studio가 커밋 메시지를 자동으로 결합하지만, 업데이트된 메시지를 제공하는 것이 더 좋은 경우도 있습니다. 커밋 메시지를 검토하고 업데이트한 후 Squash 단추를 선택합니다.

Visual Studio의 Squash 커밋 스크린샷

Squash에 대한 자세한 내용은 Git 웹 사이트에서 Git 도구 - 기록 다시 작성을 참조하세요.

분기 병합 및 다시 지정

Git 분기를 사용하여 여러 기능에 대해 작업하는 경우 어느 시점이 되면 다른 분기에 적용된 업데이트를 포함해야 합니다. 이 작업은 기능 분기에서 작업하는 중에 해야 할 수도 있습니다. 기능 분기에서 작업을 완료한 다음 다른 분기에 변경 내용을 추가하여 변경 내용을 유지해야 하는 경우 해야 할 수도 있습니다. Git에서는 분기를 병합하거나 다시 지정하여 이러한 업데이트를 포함할 수 있습니다.

참고

다음 지침에서는 기능 분기의 예제 이름으로 New_Feature를 사용합니다. 사용자 고유의 분기 이름으로 바꿉니다.

명령줄에서 기본 분기를 기능 분기에 병합하려면 다음 명령을 사용합니다.

git checkout New_Feature
git merge main

Visual Studio에서 동일한 작업을 수행하려면 분기 목록에서 기능 분기를 두 번 클릭하여 체크 아웃합니다. 그런 다음 기본을 마우스 오른쪽 단추로 클릭하고 'main'을 'New_Feature'로 병합을 선택합니다.

Visual Studio의 분기 병합 스크린샷

명령줄에서 기본 분기를 기능 분기에 다시 지정하려면 다음 명령을 사용합니다.

git checkout New_Feature
git rebase main

Visual Studio에서 동일한 작업을 수행하려면 분기 목록에서 기능 분기를 두 번 클릭하여 체크 아웃합니다. 그런 다음 기본을 마우스 오른쪽 단추로 클릭하고 'New_Feature'를 'main'으로 다시 지정을 선택합니다.

Visual Studio의 분기 다시 지정 스크린샷

일반적인 병합, 다시 지정 및 분기에 대한 자세한 내용은 Git 웹사이트에서 Git 분기를 참조하세요.

복사 커밋(Cherry-Pick)

Cherry-Pick 옵션을 사용하여 한 분기에서 다른 분기로 커밋을 복사합니다. Cherry-Pick은 병합이나 다시 지정과 달리, 분기에 있는 모든 변경 내용이 아니라 선택한 커밋의 변경 내용만 가져옵니다. Cherry-Pick은 다음과 같은 일반적인 문제를 해결하는 좋은 방법이 됩니다.

  • 실수로 잘못된 분기에 커밋한 경우. Cherry-Pick을 사용하여 변경 내용을 올바른 분기로 옮긴 다음 원래 분기를 이전 커밋으로 다시 설정합니다.
  • 기능 분기에서 이루어진 커밋을 풀하여 기본 분기에 더 빨리 병합합니다.
  • 분기를 다시 지정하지 않고 기분 분기에서 특정 커밋을 이식합니다.

명령줄을 사용하여 커밋의 변경 내용을 현재 분기로 복사하려면 다음 명령을 사용합니다.

git cherry-pick 7599e530

Visual Studio에서 동일한 작업을 수행하려면 클릭 한 번으로 커밋을 선택하여 커밋을 Cherry-Pick할 분기를 미리 봅니다. 그런 다음 대상 커밋을 마우스 오른쪽 단추로 클릭하고 Cherry-Pick을 선택합니다.

Visual Studio의 Cherry-Pick 스크린샷

작업이 완료되면 Visual Studio에 성공 메시지가 표시됩니다. Cherry-Pick하는 커밋이 발신 섹션에 나타납니다.

Cherry-Pick 커밋에 대한 자세한 내용은 Cherry-Pick Git 명령에 대한 Git 웹 페이지를 참조하세요.

변경 내용 되돌리기

되돌리기 명령을 사용하여 공유 분기로 푸시된 커밋의 변경 내용을 실행 취소합니다. 되돌리기 명령은 이전 커밋에서 적용된 변경 내용을 실행 취소하는 새 커밋을 만듭니다. 되돌리기 명령은 리포지토리 기록을 다시 작성하지 않으므로 다른 사용자와 작업할 때 안전하게 사용할 수 있습니다.

명령줄을 사용하여 커밋에 적용한 변경 내용을 되돌리려면 다음 명령을 사용합니다. 예제 ID를 분기의 실제 커밋 ID로 바꿉니다.

git revert 53333305
git commit

이전 예제에서는 커밋 53333305에 적용한 변경 내용을 실행 취소하고 분기에 새 커밋을 만듭니다. 원래 커밋은 여전히 Git 기록에 있습니다. isual Studio에서 동일한 작업을 수행하려면 되돌리려는 커밋을 마우스 오른쪽 단추로 클릭한 다음 되돌리기를 선택합니다. 동작을 확인하여 작업이 완료되면 Visual Studio에 성공 메시지가 표시되며 새 커밋이 발신 섹션에 나타납니다.

Visual Studio의 되돌리기 스크린샷

새 커밋을 선택하여 이 커밋이 되돌린 커밋의 변경 내용을 실행 취소하는지 확인합니다.

되돌리기 작업을 확인하는 스크린샷

변경 내용을 되돌리는 방법에 대한 자세한 내용은 되돌리기 명령에 대한 Git 웹 페이지를를 참조하세요.

분기를 이전 상태로 다시 설정

다시 설정 명령을 사용하여 로컬 리포지토리의 분기를 이전 커밋의 내용으로 되돌립니다. 이 작업은 분기를 다시 설정하는 커밋 이후에 발생한 모든 변경 내용을 삭제합니다.

경고

다른 사람의 작업을 삭제할 수 있으므로 공유 분기를 다시 설정하지 마세요. 대신 되돌리기 명령을 사용합니다.

명령줄을 사용하여 분기를 이전 상태로 다시 설정하려면 다음 명령을 사용합니다. 예제 ID를 분기의 실제 커밋 ID로 바꿉니다.

git reset --hard 53333305

명령의 --hard 부분은 파일을 이전 커밋의 상태로 다시 설정하고 스테이징된 변경 내용을 모두 취소하도록 Git에 지시합니다. Visual Studio에서 동일한 작업을 수행하려면 분기를 다시 설정하려는 커밋을 마우스 오른쪽 단추로 클릭하고 다시 설정>변경 내용 삭제(--hard)를 선택합니다.

Visual Studio에서 분기 다시 설정을 보여 주는 스크린샷

분기를 다시 설정하는 방법에 대한 자세한 내용은 다시 설정 명령에 대한 Git 웹 페이지를 참조하세요.