.gitignore NuGet 제외 패키지 / 포함 패키지 /repositories.config


89

NuGet을 사용하는 Visual Studio 프로젝트에 대한 .gitignore를 만들려고합니다. 현재 다음을 포함합니다.

\packages/*
!packages/repositories.config

이것은 폴더에있는 어떤 것도 무시하지 않습니다. 모든 것이 추가로 준비됩니다. 나는 또한 시도했다 :

packages/
!packages/repositories.config

이것은 packages 폴더의 모든 것을 무시하고 packages / repositories.config를 포함하지 않습니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변:


114
/packages/
!packages/repositories.config

.gitignore패키지 폴더에를 추가 할 수도 있습니다 .

*
!repositories.config
!.gitignore

12
그것은 (가) 경우 부끄러운 .gitignore자신을 무시했다. +1
Thomas

2
첫 번째 블록은 나를 위해 작동하지 않습니다 (git 버전 1.8.4.msysgit.0). 첫 번째 줄 packages에는 별이 없어야한다고 생각합니다 .
Grant Birchmeier 2014 년

1
Visual Studio에 여전히 패키지 폴더가 표시되는 것을 발견했습니다. 파일을 존중 ms-persist.xml하려면 .git폴더 에서 제거해야했습니다 .gitignore. 이에 대한 자세한 내용은 ericnelson.wordpress.com/2014/06/21/… 을 참조하십시오 .
rudivonstaden

어떤 버전을 사용해 보았는지 모르겠지만 /packages/작동하지 않았습니다. 대신 이 답변이 매우 유용 하다는 것을 알았습니다 . 요컨대 packages/*트릭을 수행했습니다. Git 버전 2.6.1
Stelios Adamantidis 2016 년

36

나는 같은 문제에 직면했다.

위의 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 그리고 여러 .ignore 파일을 유지하는 것이 좋지 않은 솔루션이라고 생각합니다.

이것이 내가 그것을 해결 한 방법입니다.

**/packages/*
!**/packages/repositories.config

두 개의 별표를 결합하면 모든 폴더 문자열과 일치합니다. 별표를 생략하면 같은 효과가있을 것이라고 생각했지만, 작동하지 않는 것 같아서 분명히 나 (우리)가 틀 렸습니다.

Visual Studio 용 공식 .gitignore 템플릿 은 다음 솔루션을 권장합니다.

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config

편집 : https://www.gitignore.io 를 사용 하여 좋아하는 프로젝트에 대한 .ignore 파일을 생성 할 수 있습니다. :-)


2
이것은 각각 패키지 폴더가있는 저장소에 여러 프로젝트가 있었기 때문에 나를 위해 일한 유일한 변형입니다. 감사.
Michael Logutov

1
잘 작동하는 것은 Visual Studio에 권장되는 공식 템플릿이며 마지막 줄의 주석 처리를 제거하는 것입니다.
vezenkov 2015

1
이것은 실제로 약간 위험합니다. 솔루션 수준의 폴더뿐만 아니라 "packages"라는 폴더를 무시합니다. 내 모델 클래스 중 일부가 저장소의 일부가 아니었다는 사실을 너무 늦게 알게되었습니다.
Rich

2
이제 업데이트되었습니다. # NuGet Packages .nupkg # MSBuild 대상으로 사용되는 build /를 제외하고 Package Restore ** / packages / # 패키지 폴더를 무시할 수 있습니다 . ! ** / packages / build / # 필요한 경우 주석 처리를 해제하지만 일반적으로 필요할 때 다시 생성됩니다. 목표
Daniel Ryan

그게 !**/packages/build/저를 위해 작동하지 않는 것을 제외하고 , 주어진 솔루션으로 ... 빌드 폴더가 커밋되지 않았습니다
JobaDiniz

12

이것은 나를 위해 작동합니다.

#NuGet
packages
!packages/repositories.config

( 첫 줄에서 별표를 제거한 것을 제외하고 @manojlds의 대답 과 동일 합니다. 저에게는 효과가 없었습니다.)


8

이 간단한 패턴이 효과가 있다는 것을 알았습니다.

/packages/*/

루트 패키지 디렉토리의 모든 디렉토리를 무시해야하지만 모든 파일을 포함해야합니다. repositories.config가 아닌 다른 파일이 거기에 표시 될 수 있는지 또는 저장소에 포함되어야하는지 여부가 확실하지 않습니다.

참조 구문 .gitignore : 빈 대 빈 / 대 빈 / * 대 빈 / **


0

나를 위해 이것은 작동했습니다.

**/packages/**

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.