gitignore 파일이 있는데 gitignore 파일은 파일을 무시 *.dll
하고 실제로는 내가 원하는 동작입니다. 그러나 예외를 원한다면 (즉 foo.dll
, 커밋 할 수 있도록 ) 어떻게 이것을 달성 할 수 있습니까?
gitignore 파일이 있는데 gitignore 파일은 파일을 무시 *.dll
하고 실제로는 내가 원하는 동작입니다. 그러나 예외를 원한다면 (즉 foo.dll
, 커밋 할 수 있도록 ) 어떻게 이것을 달성 할 수 있습니까?
답변:
사용하다:
*.dll #Exclude all dlls
!foo.dll #Except for foo.dll
에서 gitignore :
선택적 접두사! 패턴을 무효화합니다. 이전 패턴에서 제외 된 일치하는 파일은 다시 포함됩니다. 부정 패턴이 일치하면 우선 순위가 낮은 패턴 소스보다 우선합니다.
*.dll
되어 있고 내 프로젝트의 gitignore에는 !Libs/*.dll
있지만 작동하지 않는 것 같습니다.
!Libs/**/*.dll
.
!**/Libs/*.dll
폴더 구조에 따라 @RosbergLinhares 또는 .
!foo.dll
에서는 명령 과 동일한 줄에 주석을 추가 하면 명령이 무효화됩니다. 별도의 행에 주석을 추가하면 작동합니다.
Git은 다음과 같이 쓸 경우 폴더를 무시합니다.
/js
당신이 할 경우 만 예외를 추가 할 수 없습니다 :
!/js/jquery
하거나 !/js/jquery/
또는!/js/jquery/*
다음과 같이 작성해야합니다.
/js/*
그런 다음에 만 이와 같은 하위 폴더를 제외하고
!/js/jquery
!/js/jquery/xyzlib
... 무시하지 않을 것이다
/js/*
, !/js/jquery
, /js/jquery/*
, !/js/jquery/xyzlib
? 오히려 재미있는 방법 같은 느낌이 ...
간단하게 할 수 있습니다 git add -f path/to/foo.dll
.
.gitignore
일반적인 추적 및 다음과 같은 항목의 파일 만 무시합니다. git add .
-f
은 git에게이 파일을 repo에 강제로 추가하도록 지시합니다.gitignore
디렉토리의 모든 항목을 제외하고 일부 서브 디렉토리를 제외 시키려면 다음을 수행하십시오.
wp-content/*
!wp-content/plugins/
!wp-content/themes/
!
제외 규칙 앞에 추가 하면됩니다.
gitignore 매뉴얼 페이지 에 따르면 :
패턴의 형식은 다음과 같습니다.
...
- 선택적 접두사! 패턴을 무효화합니다. 이전 패턴에서 제외 된 일치하는 파일은 다시 포함됩니다. 부정 패턴이 일치하면 우선 순위가 낮은 패턴 소스보다 우선합니다.
!foo.dll
.gitignore 또는 (매번!) git add -f foo.dll
Visual Studio로 작업하고 .dll이 bin
폴더에 있으면 .dll 파일에 대한 예외를 추가하기 전에 특정 bin 폴더 자체에 대한 예외를 추가해야합니다. 예 :
!SourceCode/Solution/Project/bin
!SourceCode/Solution/Project/bin/My.dll
기본 Visual Studio .gitignore
파일에 대한 무시 패턴이 포함되어 있기 때문 입니다.[Bbin]/
이 패턴은 모든 bin 폴더 (및 결과적으로 해당 내용)를 압축하여 내용을 중복하여 포함하려고 시도합니다 (폴더 자체가 이미 무시되었으므로).
실행하여 파일이 제외되지 않은 이유를 찾을 수있었습니다.
git check-ignore -v -- SourceCode/Solution/Project/bin/My.dll
Git Bash 창에서. 이것은 [Bbin]/
패턴을 반환했습니다 .
해결책은 git ignore 규칙과 예외 규칙 간의 관계에 따라 다릅니다.
다른 레벨의 파일 / 파일 또는 파일 / 하위 폴더 : 다음을 수행 할 수 있습니다.
*.suo
*.user
*.userosscache
*.sln.docstates
# ...
# Exceptions for entire subfolders
!SetupFiles/elasticsearch-5.0.0/**/*
!SetupFiles/filebeat-5.0.0-windows-x86_64/**/*
# Exceptions for files in different levels
!SetupFiles/kibana-5.0.0-windows-x86/**/*.suo
!SetupFiles/logstash-5.0.0/**/*.suo
Git 2.7.0부터 Git은 예외를 고려합니다. 공식 출시 노트에서 :
- 나중에 "! / abc / def"가 동일한 .gitignore 파일에 나타나는 이전 "/ abc"를 재정 의하여 "/ abc 디렉토리의 모든 항목은 무시하고 ..."를 쉽게 표현할 수 있도록합니다.
https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.7.0.txt