[git] 하위 폴더를 무시

내 .Net 솔루션에 많은 프로젝트가 있습니다. 모든 “bin / Debug”및 “bin / Release”폴더 (및 해당 내용)를 제외하고 싶지만 여전히 “bin”폴더 자체와 그 안에 포함 된 dll이 포함되어 있습니다.

“bin /”이있는 .gitignore는 “Debug”및 “Release”폴더와 “bin”폴더에 포함 된 모든 dll을 무시합니다.

gitgitore 파일의 “bin / Debug”또는 “bin / Release”는 무시 패턴을 “Solution / Project / bin / Debug”로 완전히 규정하지 않는 한 디렉토리를 제외하지 않습니다. 내 솔루션의 각 프로젝트에 대해이 전체 패턴을 포함하고 추가 된 새 프로젝트에 추가해야합니다.

어떤 제안?



답변

와일드 카드를 사용해 보셨습니까?

Solution/*/bin/Debug
Solution/*/bin/Release

git 버전 1.8.2에서는 **와일드 카드를 사용하여 모든 수준의 하위 디렉토리와 일치 시킬 수도 있습니다 .

**/bin/Debug/
**/bin/Release/


답변

최상위 레벨에서 .gitignore를 사용하여 동일한 이름을 가진 프로젝트의 모든 디렉토리를 무시할 수 있습니다. 예를 들면 다음과 같습니다.

Debug/
Release/

git status 할 때 보이도록 즉시 업데이트해야합니다. 이 디렉토리가 git에 아직 추가되지 않았는지 확인하십시오. 무시하면 무시됩니다.


답변

질문은 모든 하위 디렉토리를 무시하는 것에 대해 묻지 않지만 어디서도 답을 찾을 수 없으므로 게시 할 것 */*입니다.


답변

위의 모든 대답은 유효하지만 생각하지 않는 부분은 해당 디렉토리의 파일을 저장소에 추가하면 해당 파일이 포함 된 디렉토리 / 하위 디렉토리를 무시할 수 없다는 것입니다 (git은 해당 지시문을 무시합니다) ).

이미 추가 된 파일을 무시하려면

$ git rm --cached

그렇지 않으면 repo의 대상 디렉토리에서 모든 파일을 먼저 제거해야하며 해당 폴더를 무시할 수 있습니다.


답변

gitgitore 파일에 올바른 항목을 넣는 것 외에도 이미 repo에 추가 된 것을 무시하려는 경우 git rm -r /path/to/dirdir을 .gitignore 파일에 추가하기 전에 수행해야 합니다. 그렇지 않으면 git이 무시할 유일한 것은 ignore 지시문입니다.


답변

내 컴퓨터 에서이 작업을 수행하는 유일한 방법은 다음과 같이하는 것입니다.

# Ignore all directories, and all sub-directories, and it's contents:
*/*

#Now ignore all files in the current directory
#(This fails to ignore files without a ".", for example
#'file.txt' works, but
#'file' doesn't):
/*.*

#Only Include these specific directories and subdirectories:
!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/

포함하려는 각 수준에 대해 콘텐츠를 명시 적으로 허용해야하는 방법에 주목하십시오. 하위 테마가 5 개의 테마 아래에있는 경우에도 여전히이를 설명해야합니다.

이것은 @Yarin의 의견에서 온 것입니다 : https://stackoverflow.com/a/5250314/1696153

다음은 유용한 주제였습니다.

나는 또한 시도했다

*
*/*
**/**

**/wp-content/themes/**

또는 /wp-content/themes/**/*

그 중 어느 것도 나를 위해 일하지 않았습니다. 많은 흔적과 오류!


답변

컨텐츠 및 서브 디렉토리를 제외 시키려면 다음을 수행하십시오.

**/bin/*

모든 서브 디렉토리를 제외하고 컨텐츠를 가져 오려면 “/”를 추가하십시오.

**/bin/*/