Linux용 Windows 하위 시스템에서 Git 사용 시작

Git은 가장 일반적으로 사용되는 버전 제어 시스템입니다. Git을 사용하면 파일 변경 내용을 추적할 수 있으므로 수행된 작업을 기록하고 필요한 경우 파일의 이전 버전으로 되돌릴 수 있습니다. Git은 또한 협업을 더 쉽게 만들어 여러 사람이 변경한 내용을 모두 하나의 원본으로 병합할 수 있습니다.

Git은 Windows 및 WSL에 설치할 수 있습니다.

중요한 고려 사항: WSL을 사용하도록 설정하고 Linux 배포판을 설치할 때 컴퓨터의 Windows NTFS C:\ 드라이브와 분리된 새 파일 컴퓨터를 설치하게 됩니다. Linux에서는 드라이브에 문자가 지정되지 않습니다. 탑재 지점이 제공됩니다. 파일 시스템 /의 루트는 WSL의 경우 루트 파티션 또는 폴더의 탑재 지점입니다. / 아래의 모든 항목이 동일한 드라이브는 아닙니다. 예를 들어, 내 랩톱에 Debian뿐만 아니라 두 가지 버전의 Ubuntu(20.04 및 18.04)를 설치했습니다. 해당 배포판을 열면 cd ~ 명령으로 홈 디렉터리를 선택한 다음 explorer.exe . 명령을 입력하면 Windows 파일 탐색기가 열리고 해당 배포의 디렉터리 경로가 표시됩니다.

Linux 배포판 홈 폴더에 액세스하기 위한 Windows 경로
Ubuntu 20.04 \\wsl$\Ubuntu-20.04\home\username
Ubuntu 18.04 \\wsl$\Ubuntu-18.04\home\username
Debian \\wsl$\Debian\home\username
Windows PowerShell C:\Users\username

WSL 배포 명령줄에서 Windows 파일 디렉터리에 액세스하려는 경우 C:\Users\username 대신 /mnt/c/Users/username을 사용하여 디렉터리에 액세스합니다. Linux 배포는 Windows 파일 시스템을 탑재된 드라이브로 보기 때문입니다.

사용하려는 각 파일 시스템에 Git을 설치해야 합니다.

Showing Git versions by distro

Git 설치

Git은 대부분의 Linux 배포용 Windows 하위 시스템과 함께 이미 설치되어 제공되지만 최신 버전으로 업데이트하는 것이 좋습니다. 또한 git 구성 파일을 설정해야 합니다.

Git을 설치하려면 Linux용 Git 다운로드 사이트를 참조하세요. 각 Linux 배포에는 자체 패키지 관리자와 설치 명령이 있습니다.

Ubuntu/Debian의 안정적인 최신 Git 버전을 보려면 다음 명령을 입력합니다.

sudo apt-get install git

참고 항목

아직 설치하지 않은 경우 Windows용 Git을 설치할 수도 있습니다.

Git 구성 파일 설정

Git 구성 파일을 설정하려면 작업 중인 배포판의 명령줄을 열고 다음 명령으로 이름을 설정합니다("Your Name"을 원하는 사용자 이름으로 바꾸기).

git config --global user.name "Your Name"

다음 명령으로 이메일을 설정합니다("youremail@domain.com"을 원하는 이메일로 바꿉니다).

git config --global user.email "youremail@domain.com"

아직 GitHub 계정이 없다면 GitHub에서 등록할 수 있습니다. 이전에 Git를 사용한 경험이 없는 경우 GitHub 가이드를 보면 시작하는 데 도움이 될 수 있습니다. Git config를 편집해야 하는 경우 nano: nano ~/.gitconfig와 같은 기본 제공 텍스트 편집기를 사용하여 편집할 수 있습니다.

2FA(2단계 인증)를 사용하여 계정을 보호하는 것이 좋습니다.

Git 자격 증명 관리자 설정

GCM(Git 자격 증명 관리자)은 WSL1과 WSL2 모두에서 사용할 수 있는 .NET에 빌드된 안전한 Git 자격 증명 도우미입니다. GitHub 리포지토리, Azure DevOps, Azure DevOps Server 및 Bitbucket에 대한 다단계 인증 지원을 사용하도록 설정합니다.

GCM은 GitHub와 같은 서비스의 인증 흐름에 통합되며 호스팅 공급자에 인증되면 새 인증 토큰을 요청합니다. 그런 다음, Windows 자격 증명 관리자에 토큰을 안전하게 저장합니다. 처음 인증하고 나면 다시 인증할 필요 없이 Git을 사용하여 호스팅 공급자와 통신할 수 있습니다. Git이 Windows 자격 증명 관리자의 토큰에 액세스할 것입니다.

WSL과 함께 GCM을 사용하려면 Windows 10 버전 1903 이상이어야 합니다. 이는 GCM이 WSL 배포에서 Git과 상호 운용하는 데 사용하는 필수 wsl.exe 도구를 포함하는 Windows의 첫 번째 버전입니다.

WSL과 Windows 호스트 간에 자격 증명 및 설정을 공유하려면 Windows용 최신 Git을 설치하는 것이 좋습니다. Git 자격 증명 관리자는 Windows용 Git에 포함되어 있으며 최신 버전은 각각의 새로운 Windows용 Git 릴리스에 포함되어 있습니다. 설치 중에 GCM이 기본값으로 설정된 자격 증명 헬퍼를 선택하라는 메시지가 표시됩니다.

Windows용 Git을 설치하지 않아야 할 이유가 있는 경우 GCM을 WSL 배포판에서 Linux 애플리케이션으로 직접 설치할 수 있지만 이렇게 하면 GCM이 Linux 애플리케이션으로 실행 중이며 호스트 Windows 운영 체제의 인증 또는 자격 증명 스토리지 기능을 활용할 수 없습니다. Windows용 Git 없이 WSL을 구성하는 방법에 대한 지침은 GCM 리포지토리를 참조하세요.

WSL 배포와 함께 사용하기 위해 GCM을 설정하려면 배포를 열고 다음 명령을 입력합니다.

설치된 GIT가 >= v2.39.0인 경우

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

또는 설치된 GIT가 >= v2.36.1인 경우

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

버전이 < v2.36.1인 경우 다음 명령을 입력합니다.

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"

참고 항목

GCM을 WSL Git 설치에 대한 자격 증명 도우미로 사용하는 것은 WSL Git에 설정된 모든 구성이 GCM에서 준수되지 않음을 의미합니다(기본적으로). 이는 GCM이 Windows 애플리케이션으로 실행 중이기 때문에 Windows용 Git 설치를 사용하여 구성을 쿼리하기 때문입니다. 즉, GCM에 대한 프록시 설정과 같은 항목은 서로 다른 파일(%USERPROFILE%\.gitconfig\\wsl$\distro\home\$USER\.gitconfig)에 저장되므로 Windows용 Git 및 WSL Git에서 설정해야 합니다. GCM이 WSL Git 구성을 사용하도록 WSL을 구성할 수 있지만 이는 프록시 설정이 특정 WSL 설치에 대해 고유하고 다른 사람 또는 Windows 호스트와 공유되지 않음을 의미합니다.

SSH와 함께 Git 사용

Git 자격 증명 관리자는 HTTP(S) 원격에서만 작동합니다. SSH와 함께 Git을 계속 사용할 수 있습니다.

Azure에 대한 추가 구성

Azure Repos 또는 Azure DevOps로 작업하려면 몇 가지 추가 구성이 필요합니다.

git config --global credential.https://dev.azure.com.useHttpPath true

이제 WSL 배포 내에서 수행하는 모든 git 작업은 GCM을 사용합니다. 호스트용으로 캐시된 자격 증명이 이미 있는 경우 자격 증명 관리자에서 액세스됩니다. 그렇지 않다면 자격 증명을 요청하는 대화 상자 응답이 수신됩니다(Linux 콘솔에 있을 경우도).

코드 서명 보안을 위해 GPG 키를 사용하는 경우 GPG 키를 GitHub 이메일과 연결해야 할 수 있습니다.

Git Ignore 파일 추가

프로젝트에 .gitignore 파일을 추가하는 것이 좋습니다. GitHub는 사용 사례에 따라 구성된 권장 .gitignore 파일 설정과 함께 유용한 .gitignore 템플릿 컬렉션을 제공합니다. 예를 들어, Node.js 프로젝트용 GitHub의 기본 gitignore 템플릿은 다음과 같습니다.

GitHub 웹 사이트를 사용하여 새 리포지토리 만들기를 선택하면 특정 프로젝트 형식으로 설정된 .gitignore 파일인 README 파일을 사용하여 리포지토리를 초기화하는 확인란과 필요에 따라 라이선스를 추가할 수 있는 옵션이 제공됩니다.

Git 및 VS Code

Visual Studio Code에는 변경 내용을 표시하고 다양한 git 명령을 처리하는 원본 제어 탭을 포함하여 Git에 대한 기본 제공 지원이 제공됩니다. VS Code의 Git 지원에 대해 자세히 알아봅니다.

Git 줄 끝

Windows, WSL 또는 컨테이너 간에 동일한 리포지토리 폴더로 작업하는 경우 일관된 줄 끝을 설정해야 합니다.

Windows와 Linux는 서로 다른 기본 줄 끝을 사용하므로 Git은 줄 끝 외에 차이가 없는 많은 수정된 파일을 보고할 수 있습니다. 이를 방지하기 위해 .gitattributes 파일을 사용하거나 Windows 측에서 전체적으로 줄 끝 변환을 사용하지 않도록 설정할 수 있습니다. Git 줄 끝 문제 해결에 대한 VS Code 문서를 참조하세요.

추가 리소스