다음을 통해 공유


Visual Studio의 Git 설정 및 기본 설정

Visual Studio에서 일반적인 Git 설정과 사용자 이름 및 이메일 주소, 기본 diff 및 병합 도구 등과 같은 기본 설정을 구성하고 볼 수 있습니다. 이러한 설정과 기본 설정은 Git 전역 설정 페이지(모든 리포지토리에 적용됨) 또는 Git 리포지토리 설정 페이지(현재 리포지토리에 적용 됨)의 옵션 대화 상자에서 보고 구성할 수 있습니다.

다음 두 가지 유형의 설정을 구성할 수 있습니다.

  • Git 설정 - 이 섹션의 설정은 Git 구성 파일에 저장된 Git 설정에 해당합니다. 이러한 설정은 Visual Studio에서 보고 수정할 수 있지만 Git 구성 파일을 통해 관리됩니다.
  • Visual Studio 설정 - 이 섹션의 설정은 Visual Studio가 관리하는 Git 관련 설정 및 기본 설정을 구성합니다.

설정을 구성하는 방법

  1. Visual Studio에서 Git 설정을 구성하려면 최상위 Git 메뉴에서 설정을 선택합니다.

    설정 명령에 대한 설명선이 있는 Git 메뉴

  2. 전역 수준 또는 리포지토리 수준 설정을 보고 구성하려면 Git 전역 설정 또는 Git 리포지토리 설정을 선택합니다.

    Git 설정에 대한 설명선이 있는 옵션 대화 상자의 탐색 창

  3. 이 문서의 다음 섹션에 설명된 대로 몇 가지 일반적인 Git 설정을 구성할 수 있습니다. 원하는 설정을 구성한 후 확인을 선택하여 업데이트된 설정을 저장합니다.

    확인 단추에 대한 설명선이 있는 옵션 대화 상자의 표시 영역

Git 설정

가장 일반적인 몇 가지 Git 구성 설정을 구성하고 확인할 수도 있습니다. Git 구성 파일이 관리하는 다음 설정도 Visual Studio에서 보고 수정할 수 있습니다.

참고 항목

Visual Studio의 전역 설정에서 구성된 Git 설정은 Git의 사용자별 구성 파일의 설정에 해당하며, 리포지토리 설정의 설정은 리포지토리별 구성 파일의 설정에 해당합니다. Git 구성에 대한 자세한 내용은 Git 사용자 지정에 대한 Pro Git 챕터, git-config 설명서, 구성 파일에 대한 Pro Git 참조를 참조하세요. Visual Studio에서 노출되지 않는 Git 설정을 구성하려면 git config 명령을 사용하여 구성 파일에 값을 씁니다(git config [--local|--global|--system] section.key value).

이름 및 이메일

사용자가 제공하는 이름과 전자 메일은 수행하는 커밋의 커밋한 사람 정보로 사용됩니다. 이 설정은 전역 범위와 리포지토리 범위에서 모두 사용할 수 있으며, git config user.nameuser.email 설정에 해당합니다.

  1. Git 메뉴에서 설정으로 이동합니다. 전역 수준에서 사용자 이름과 전자 메일을 설정하려면 Git 전역 설정으로 이동합니다. 리포지토리 수준에서 사용자 이름과 전자 메일을 설정하려면 Git 리포지토리 설정으로 이동합니다.

  2. 사용자 이름과 전자 메일을 입력한 다음, 확인을 선택하여 저장합니다.

    사용자 이름과 전자 메일에 대한 설명선이 있는 옵션 대화 상자의 Git 전역 설정 창

페치 중에 원격 분기 정리

정리를 통해 원격에 더 이상 존재하지 않는 로컬 추적 분기를 제거하고 분기 목록을 정리하여 최신 상태로 유지할 수 있습니다. 이 설정은 전역 범위와 리포지토리 범위에서 모두 사용할 수 있으며, git config fetch.prune 설정에 해당합니다.

이 옵션을 전역 수준에서 True로 설정하는 것이 좋습니다. 유효한 설정은 다음과 같습니다.

  • True(권장)
  • False
  • Unset(기본값)

설정을 변경하는 방법은 다음과 같습니다.

  1. Git 메뉴에서 설정으로 이동합니다. 전역 수준에서 이 옵션을 구성하려면 Git 전역 설정으로 이동합니다. 리포지토리 수준에서 이 옵션을 구성하려면 Git 리포지토리 설정으로 이동합니다.

  2. 페치 중에 원격 분기 정리True로 설정합니다(권장). 확인을 선택하여 저장합니다.

    '페치 중에 원격 분기 정리'가 강조 표시되고 드롭다운에서 'True'가 선택된 것을 보여 주는 스크린샷

풀할 때 로컬 분기 다시 지정

다시 지정은 업스트림 분기에 없는 현재 분기의 커밋이 수행한 변경 내용을 따로 보관하고, 현재 분기를 업스트림 분기로 다시 설정한 다음, 따로 보관했던 변경 내용을 적용합니다. 이 설정은 전역 범위와 리포지토리 범위에서 모두 사용할 수 있으며, git config pull.rebase 설정에 해당합니다. 유효한 설정은 다음과 같습니다.

  • True: 페치 후 업스트림 분기의 위에서 현재 분기를 다시 지정합니다.

  • False: 현재 분기를 업스트립 분기에 병합합니다.

  • Unset(기본값): 다른 구성 파일에서 지정되지 않은 경우 현재 분기를 업스트림 분기에 병합합니다.

  • Interactive: 대화형 모드에서 다시 지정합니다.

  • Interactive: 로컬로 만든 병합 커밋을 평면화하지 않고 다시 지정합니다.

    참고 항목

    Visual Studio 2022 버전 17.2에서는 Git의 최근 업데이트와 일치하도록 "Preserve" 설정을 "Merges"로 변경했습니다. 따라서 Git 도구와 함께 이전 버전의 Visual Studio를 사용하는 경우 사용자 인터페이스에서 "Merges" 대신 "Preserve"가 표시될 수 있습니다. 그러나 기능은 동일하게 유지됩니다.

설정을 변경하는 방법은 다음과 같습니다.

  1. Git 메뉴에서 설정으로 이동합니다. 전역 수준에서 이 옵션을 구성하려면 Git 전역 설정으로 이동합니다. 리포지토리 수준에서 이 옵션을 구성하려면 Git 리포지토리 설정으로 이동합니다.

  2. 풀할 때 로컬 분기 다시 지정을 원하는 설정으로 설정하고 확인을 선택하여 저장합니다.

    '풀할 때 로컬 분기 다시 지정'이 강조 표시되고 드롭다운에서 'Merges'가 선택된 스크린샷

Visual Studio에서는 pull.rebaseInteractive로 구성할 수 없습니다. Visual Studio는 대화형 다시 지정을 지원하지 않습니다. 대화형 모드를 사용하도록 pull.rebase를 구성하려면 명령줄을 사용하세요.

암호화 네트워크 공급자

암호화 네트워크 공급자는 런타임에 사용할 TLS/SSL 백 엔드를 구성하는 전역 범위의 Git 구성 설정이며, git config http.sslBackend 설정에 해당합니다. 값은 다음과 같습니다.

  • OpenSSL: TLS 및 SSL 프로토콜에 OpenSSL을 사용합니다.
  • Secure Channel: TLS 및 SSL 프로토콜에 보안 채널(schannel)을 사용합니다. schannel은 기본 Windows 솔루션으로, Windows 자격 증명 저장소에 액세스하므로 엔터프라이즈 전체의 인증서 관리가 가능합니다.
  • Unset(기본값): 이 설정을 지정하지 않으면 OpenSSL이 기본값입니다.

설정을 변경하는 방법은 다음과 같습니다.

  1. Git 메뉴에서 설정으로 이동합니다. Git 전역 설정으로 이동하여 이 설정을 구성합니다.

  2. 암호화 네트워크 공급자를 원하는 값으로 설정하고 확인을 선택하여 저장합니다.

    '암호화 네트워크 공급자'가 강조 표시되고 드롭다운에서 'OpenSSL'이 선택된 것을 보여 주는 스크린샷

자격 증명 도우미

Visual Studio가 원격 Git 작업을 수행하는 경우 요청과 함께 자격 증명을 제공해야 하므로 원격 엔드포인트에서 요청을 거부할 수 있습니다. 이때 Git이 자격 증명 도우미를 호출하면 자격 증명 도우미는 작업을 수행하는 데 필요한 자격 증명을 반환한 다음 요청을 다시 시도합니다. 사용되는 자격 증명 도우미는 git config credential.helper 설정에 해당합니다. 다음 값을 사용하여 전역 범위에서 사용할 수 있습니다.

  • Windows용 GCM: Windows용 Git 자격 증명 관리자를 도우미로 사용합니다.
  • GCM Core: Git 자격 증명 관리자 코어를 도우미로 사용합니다.
  • Unset(기본값): 이 설정을 지정하지 않으면 시스템 구성에 설정된 자격 증명 도우미가 사용됩니다. Windows용 Git 2.29 기준으로 기본 자격 증명 도우미는 GCM Core입니다.

설정을 변경하는 방법은 다음과 같습니다.

  1. Git 메뉴에서 설정으로 이동합니다. Git 전역 설정으로 이동하여 이 설정을 구성합니다.

  2. 자격 증명 도우미를 원하는 값으로 설정하고 확인을 선택하여 저장합니다.

    옵션 대화 상자의 자격 증명 도우미 설정을 보여 주는 스크린샷

Diff 및 병합 도구

Git은 선호하는 도구에서 diff 및 병합 충돌을 표시합니다. 이 섹션의 설정은 git config diff.toolmerge.tool 설정에 해당합니다. Git 전역 설정Git 리포지토리 설정에서 Visual Studio 사용을 선택하여 병합 또는 diff 도구로 Visual Studio를 사용하도록 Git을 구성할 수 있습니다. 다른 diff 및 병합 도구를 구성하려면 diff.tool 또는 merge. tool 스위치와 함께 git config를 사용합니다.

옵션 대화 상자에서 기본 Diff 도구 및 병합 도구를 설정하는 섹션을 보여 주는 스크린샷

Git 파일

Git 리포지토리 설정 범위에서 Git 파일 섹션을 사용하여 리포지토리의 gitignoregitattributes 파일을 보고 편집할 수 있습니다.

리포지토리의 Ignore 및 Attributes 파일을 보고 편집하는 섹션을 보여 주는 스크린샷

원격

Git 리포지토리 설정 아래의 원격 창을 사용하여 리포지토리의 원격을 구성할 수 있습니다. 이 설정은 git remote 명령에 해당하며, 원격을 추가, 편집 또는 제거할 수 있습니다.

옵션 대화 상자의 Git 원격 창을 보여 주는 스크린샷

기타 설정

다른 Git 구성 설정을 모두 보려면 구성 파일 자체를 열고 보거나 git config --list를 실행하여 설정을 표시할 수 있습니다.

Visual Studio 설정

다음 설정은 Visual Studio의 Git 관련 기본 설정을 관리하며, Git 구성 파일 대신 Visual Studio가 관리합니다. 이 섹션의 모든 설정은 Git 전역 설정 페이지에서 구성됩니다.

기본 위치

기본 위치는 리포지토리가 복제되는 기본 폴더를 구성합니다.

옵션 대화 상자의 기본 위치 필드를 보여 주는 스크린샷

리포지토리를 열 때 Git 아래에 없는 열린 솔루션 닫기

기본적으로 Visual Studio는 다른 리포지토리로 전환할 때 열려 있는 솔루션 또는 폴더를 닫습니다. 이때 Visual Studio는 사용자가 Git 리포지토리를 열 때 솔루션 탐색기에서 폴더 열기Git 리포지토리를 열 때 자동으로 솔루션을 로드를 선택하는지에 따라 새 리포지토리의 솔루션 또는 폴더를 로드할 수도 있습니다. 이렇게 하면 열려 있는 코드와 열려 있는 리포지토리 간의 일관성이 유지됩니다. 하지만 솔루션이 리포지토리와 동일한 폴더 루트에 없는 경우에는 리포지토리로 전환할 때 솔루션을 열어 두는 것이 좋습니다. 다음 설정을 사용하면 됩니다. 값은 다음과 같습니다.

  • : 리포지토리를 열면 현재 열려 있는 솔루션이 항상 닫힙니다.

  • 아니요: 리포지토리를 열면 Visual Studio는 현재 솔루션이 Git 아래에 있는지 여부를 확인합니다. 아래에 없으면 솔루션이 열린 상태로 유지됩니다.

  • 항상 확인(기본값): 이렇게 설정되면 현재 솔루션을 열어 두거나 닫을지 여부에 관계없이 열려 있는 리포지토리별 대화 상자를 통해 선택할 수 있습니다.

    옵션 대화 상자의 솔루션 닫기 설정을 보여 주는 스크린샷

타사 소스의 작성자 이미지 다운로드 사용

타사 소스의 작성자 이미지 다운로드 사용은 전역 범위에서 Visual Studio 특정 설정입니다. 선택하면 작성자 이미지가 Gravatar 이미지 서비스에서 다운로드되고(사용 가능한 경우), 커밋 및 기록 보기에 표시됩니다.

옵션 대화 상자에서 타사 소스의 작성자 이미지 다운로드 사용 확인란을 보여 주는 스크린샷

Important

커밋 및 기록 보기에서 작성자 이미지를 제공하기 위해 도구는 활성 리포지토리에 저장된 작성자 전자 메일 주소의 MD5 해시를 만듭니다. 그런 다음 이 해시는 Gravatar로 전송되어 이전에 서비스에 등록한 사용자에 대해 일치하는 해시 값을 찾습니다. 일치가 발견되면 사용자 이미지가 서비스에서 검색되고 Visual Studio에 표시됩니다. 서비스를 구성하지 않은 사용자는 임의로 생성된 이미지를 반환합니다. 전자 메일 주소는 Visual Studio가 기록하지 않으며 Gravatar 또는 다른 타사와 공유되지도 않습니다.

기본적으로 병합 후 변경 내용 커밋

기본적으로 병합 후 변경 내용 커밋을 사용하도록 설정하면 분기가 현재 분기와 병합될 때 Git이 자동으로 새 커밋을 만듭니다.

옵션 대화 상자의 기본적으로 병합 후 변경 내용 커밋 확인란을 보여 주는 스크린샷

  • 확인란을 선택하면 Visual Studio가 실행하는 git merge 명령이 --commit 옵션과 함께 실행됩니다.
  • 확인란 선택을 취소하면 Visual Studio가 실행하는 git merge 명령이 --no-commit --no-ff 옵션과 함께 실행됩니다.

이러한 옵션에 대한 자세한 내용은 --commit과 --no-commit--no-ff를 참조하세요.

push --force-with-lease 사용

이 설정을 사용하도록 설정하면 Visual Studio 내에서 push --force-with-lease를 사용할 수 있습니다. 기본적으로 push --force-with-lease 사용은 사용하지 않도록 설정되어 있습니다.

옵션 대화 상자의 push force with lease 사용 확인란을 보여 주는 스크린샷

자세한 내용은 push --force-with-lease를 참조하세요.

Git 리포지토리를 열 때 솔루션 탐색기에서 폴더 열기

Visual Studio를 사용하여 Git 리포지토리를 열거나 Git 리포지토리로 전환하는 경우 Visual Studio는 IDE 내에서 변경 내용, 커밋, 분기를 보고 리포지토리를 관리할 수 있도록 Git 콘텐츠를 로드합니다. 또한 Visual Studio는 솔루션 탐색기에서 리포지토리의 코드도 로드합니다. Visual Studio는 리포지토리 폴더에서 솔루션, CMakeLists.txt 또는 Visual Studio가 인식하는 다른 보기 파일을 검색하여 솔루션 탐색기에서 목록으로 표시합니다. 이 위치에서 로드할 솔루션 또는 디렉터리 내용을 볼 폴더를 선택할 수 있습니다. 이 확인란을 해제하면 Visual Studio는 솔루션 탐색기에서 리포지토리 폴더를 열지 않습니다. 이렇게 하면 기본적으로 Git 리포지토리 관리자로만 Visual Studio를 열 수 있습니다. 이 설정은 기본적으로 설정입니다.

옵션 대화 상자의 Git 리포지토리를 열 때 폴더 열기 확인란을 보여 주는 스크린샷

Git 리포지토리를 열 때 솔루션 자동 로드

이 설정은 Git 리포지토리를 열 때 솔루션 탐색기에서 폴더 열기 설정이 켜져 있는 경우에만 적용됩니다. Visual Studio에서 Git 리포지토리를 열고 후속 폴더 검사에서 리포지토리에 솔루션이 하나만 있음을 검색하면 Visual Studio는 해당 솔루션을 자동으로 로드합니다. 설정을 끄면 솔루션 탐색기는 리포지토리에 있는 단일 솔루션을 보기 목록에 표시합니다. 하지만 솔루션을 로드하지는 않습니다. 기본적으로 이 설정은 꺼져 있습니다.

옵션 대화 상자의 Git 리포지토리를 열 때 솔루션을 자동으로 로드 확인란을 보여 주는 스크린샷

두 번 클릭하거나 Enter 키를 눌러 분기 자동 체크 아웃

Git 리포지토리 창에는 트리 구조로 표시된 분기 목록이 있습니다. 분기를 선택하면 선택한 분기의 커밋을 표시하도록 커밋 기록 창이 전환됩니다. 분기를 체크 아웃하려면 마우스 오른쪽 단추를 클릭하여 상황에 맞는 메뉴를 열고 체크 아웃을 선택합니다. 이 설정을 켜는 경우 두 번 클릭하거나 Enter 키를 누르면 분기가 체크 아웃되고 해당 커밋이 표시됩니다.

옵션 대화 상자의 두 번 클릭하거나 Enter 키를 눌러 분기 체크 아웃 확인란을 보여 주는 스크린샷

Important

제안 사항이 있는 경우 알려 주세요. Microsoft는 Developer Community 포털을 통해 사용자와 소통하며 디자인을 결정하는 기회를 소중하게 생각합니다.