다음을 통해 공유


Git을 사용하여 파일 변경 무시

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

프로젝트의 모든 파일이 Git에서 추적해야 하는 것은 아닙니다. 일반적으로 추적할 필요가 없는 파일의 예로는 개발 환경의 임시 파일, 테스트 출력 및 로그가 포함됩니다.

여러 메커니즘을 사용하여 Git에 추적할 수 없는 파일을 알리고 Git에서 해당 파일에 대한 변경 내용을 보고하지 않도록 할 수 있습니다. Git에서 추적하지 않는 파일의 경우 .gitignore 또는 exclude 파일을 사용할 수 있습니다. Git이 이미 추적하는 파일의 경우 Git에 추적을 중지하고 변경 내용을 무시하도록 지시할 수 있습니다.

필수 조건

카테고리 요구 사항
프로젝트 액세스 프로젝트멤버입니다.
권한 - 프라이빗 프로젝트에서 코드 보기: 최소 기본 액세스.
- 프라이빗 프로젝트의 코드 복제 또는 기여: 기여자 보안 그룹 또는 프로젝트의 해당 사용 권한의 구성원입니다.
- 분기 또는 리포지토리 사용 권한 설정: 분기 또는 리포지토리에 대한 사용 권한 사용 권한 관리
- 기본 분기 변경: 리포지토리에 대한 정책 편집 권한 설정.
- 리포지토리 가져오기: 프로젝트 관리자 보안 그룹의 구성원 또는 Git 프로젝트 수준에서 리포지토리 생성 권한이 허용으로 설정된 경우. 자세한 내용은 Git 리포지토리 권한 설정을 참조 하세요.
서비스 리포지토리가 활성화되었습니다.
도구 선택 사항. az repos 명령어를 사용하세요: Azure DevOps CLI.

비고

퍼블릭 프로젝트에서 이해 관계자 액세스 권한이 있는 사용자는 코드 보기, 복제 및 기여를 포함하여 Azure Repos에 대한 모든 권한을 갖습니다.

카테고리 요구 사항
프로젝트 액세스 프로젝트멤버입니다.
권한 - 코드 보기: 최소 베이직 접근 권한.
- 코드 복제 또는 기여: 기여자 보안 그룹의 구성원이거나 프로젝트에서 해당 권한을 가진 경우.
서비스 리포지토리가 활성화되었습니다.

.gitignore 파일 사용

.gitignore 파일을 추가하고 구성하여 프로젝트의 특정 파일을 추적하지 않도록 Git에 지시할 수 있습니다. 다음 주요 사항을 검토합니다.

  • 추적되지 않은 파일 : .gitignore 파일의 항목은 추적되지 않은 파일에만 적용됩니다. Git이 추적된 파일에 변경 내용을 보고하는 것을 방지하지는 않습니다. 추적된 파일은 커밋된 파일이며 마지막 Git 스냅샷에 존재합니다.
  • 파일 검색 패턴: .gitignore 파일의 각 줄은 .gitignore 파일 경로를 기준으로 파일 검색 패턴을 지정합니다. .gitignore 구문 유연하며 와일드카드를 사용하여 이름, 확장명 및 경로별로 개별 또는 여러 파일을 지정할 수 있습니다. Git은 프로젝트의 파일에 .gitignore 검색 패턴을 일치하여 무시할 파일을 결정합니다.
  • 위치: 일반적으로 프로젝트의 루트 폴더에 .gitignore 파일을 추가합니다. 그러나 프로젝트 폴더에 .gitignore 파일을 추가하여 Git에 해당 폴더 내에서 무시할 파일과 중첩된 깊이의 하위 폴더를 알 수 있습니다. 여러 .gitignore 파일의 경우 폴더 내에서 .gitignore 파일이 지정하는 파일 검색 패턴이 부모 폴더 내에서 .gitignore 파일이 지정하는 패턴보다 우선합니다.
  • 만들기: .gitignore 파일을 수동으로 만들고 파일 패턴 항목을 추가할 수 있습니다. 또는 GitHub gitignore 리포지토리개발 환경에 대한 .gitignore 템플릿을 다운로드하여 시간을 절약할 수 있습니다.
  • 이점: .gitignore 파일을 사용할 때의 이점 중 하나는 변경 내용을 커밋하고 다른 사용자와 공유할 수 있다는 것입니다.

비고

Git 리포지토리 만들때 Visual Studio는 Visual Studio 개발 환경에 대한 .gitignore 파일을 자동으로 만듭니다.

Visual Studio 2022는 Git 메뉴, Git 변경솔루션 탐색기바로 가기 메뉴를 통해 Git 버전 제어 환경을 제공합니다. Visual Studio 2019 버전 16.8은 팀 탐색기 Git 사용자 인터페이스도 제공합니다. 자세한 내용은 Visual Studio 2019 - 팀 탐색기 탭을 참조하세요.

Git 변경 내용 창에서 Git에서 무시하려는 변경된 파일을 마우스 오른쪽 버튼으로 클릭한 다음, 이 로컬 항목을 무시 또는 이 확장을 무시를 선택합니다. 추적된 파일에는 이러한 메뉴 옵션이 없습니다.

Visual Studio의 Git 변경 내용 창에서 변경된 파일에 대한 상황에 맞는 메뉴 옵션 스크린샷

  • 이 로컬 항목 무시 옵션은 .gitignore 파일에 새 항목을 추가하고 변경된 파일 목록에서 선택한 파일을 제거합니다.
  • 이 확장 무시 옵션은 .gitignore 파일에 새 항목을 추가하고 변경된 파일 목록에서 선택한 파일과 동일한 확장자를 가진 모든 파일을 제거합니다.

두 옵션 중 하나가 리포지토리의 루트 폴더에 아직 없는 경우 .gitignore 파일을 만들고 해당 파일에 항목을 추가합니다.

gitignore 파일 편집

.gitignore 파일의 각 항목은 무시할 파일을 지정하는 파일 검색 패턴, 숫자 기호(#) 또는 빈 줄(가독성을 위해)으로 시작하는 주석입니다. .gitignore 구문 유연하며 와일드카드를 사용하여 이름, 확장명 및 경로별로 개별 또는 여러 파일을 지정할 수 있습니다. 파일 검색 패턴의 모든 경로는 .gitignore 파일을 기준으로 합니다.

다음은 일반적인 파일 검색 패턴의 몇 가지 예입니다.

# Ignore all files with the specified name.
# Scope is all repo folders.
config.json

# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json

# Add an exception to prevent ignoring a file with the specified name.
# Scope is all repo folders.
!package.json

# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile

# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile

# Ignore all files in the 'logs' subfolder.
/logs/

.gitignore 파일을 수정하는 즉시 Git은 무시되는 파일 목록을 업데이트합니다.

비고

Windows 사용자는 백슬래시(\)를 사용하는 대신 슬래시(/)를 .gitignore 파일의 경로 구분 기호로 사용해야 합니다. 모든 사용자는 폴더를 지정할 때 후행 슬래시를 추가해야 합니다.

전역 .gitignore 파일 사용

.gitignore 파일을 모든 로컬 Git 리포지토리에 적용되는 전역 무시 파일로 지정할 수 있습니다. 이렇게 하려면 다음과 같이 git config 명령을 사용합니다.

git config core.excludesfile <gitignore file path>

전역 .gitignore 파일은 Git이 컴파일된 이진 파일과 같은 특정 파일 형식을 로컬 리포지토리에서 커밋하지 않도록 하는 데 도움이 됩니다. 리포지토리별 .gitignore 파일의 파일 검색 패턴은 전역 .gitignore 파일의 패턴보다 우선합니다.

제외 파일 사용

로컬 리포지토리의 .git/info/ 폴더에 있는 exclude 파일에 파일 검색 패턴에 대한 항목을 추가할 수도 있습니다. exclude 파일을 사용하면 Git에서 무시할 추적되지 않은 파일을 알 수 있습니다. .gitignore 파일과 동일한 구문을 파일 검색 패턴에 사용합니다.

exclude 파일의 항목은 추적되지 않은 파일에만 적용됩니다. Git이 이미 추적한 커밋된 파일에 변경 내용을 보고하는 것을 방지하지는 않습니다. 리포지토리당 하나의 exclude 파일만 존재합니다.

Git은 exclude 파일을 커밋하거나 푸시하지 않으므로 다른 사용자에게 영향을 주지 않고 로컬 시스템의 파일을 무시하도록 안전하게 사용할 수 있습니다.

git update-index를 사용하여 변경 내용 무시

경우에 따라 로컬 리포지토리 파일 추적을 일시적으로 중지하고 Git에서 파일의 변경 내용을 무시하도록 하는 것이 편리합니다. 예를 들어 변경 내용을 커밋할 위험 없이 개발 환경에 대한 설정 파일을 사용자 지정할 수 있습니다. 이렇게 하려면 skip-worktree 플래그를 사용하여 git update-index 명령을 실행할 수 있습니다.

git update-index --skip-worktree <file path>

추적을 다시 시작하려면 --no-skip-worktree 플래그를 사용하여 git update-index 명령을 실행합니다.

또는 파일 추적을 일시적으로 중지하고 assume-unchanged 플래그와 함께 git update-index 명령을 사용하여 Git에서 파일 변경 내용을 무시하도록 할 수 있습니다. 파일 콘텐츠를 변경하는 Git pull 작업은 assume-unchanged 플래그를 되돌릴 수 있으므로 이 옵션은 skip-worktree 플래그보다 덜 효과적입니다.

git update-index --assume-unchanged <file path>

추적을 다시 시작하려면 --no-assume-unchanged 플래그를 사용하여 git update-index 명령을 실행합니다.

git rm을 사용하여 변경 내용 무시

.gitignore 또는 exclude 파일의 항목은 Git이 이미 추적하는 파일에 영향을 주지 않습니다. Git은 이전에 커밋한 파일을 추적합니다. Git이 더 이상 추적하지 않고 파일 시스템에서 삭제하지 않도록 Git 스냅샷에서 파일을 영구적으로 제거하려면 다음 명령을 실행합니다.

git rm --cached <file path>
git commit <some message>

그런 다음 .gitignore 또는 exclude 파일 항목을 사용하여 Git에서 파일 변경 내용을 보고하지 못하도록 합니다.

다음 단계