programing

Git 프로젝트의 'bin' 디렉터리 무시

showcode 2023. 5. 25. 22:12
반응형

Git 프로젝트의 'bin' 디렉터리 무시

다음과 같은 디렉토리 구조를 가지고 있습니다.

.git/
.gitignore
main/
  ...
tools/
  ...
...

주 디렉터리와 도구, 그리고 다른 디렉터리 안에는 어떤 수준에서든 무시하고 싶은 '빈' 디렉터리가 있을 수 있습니다(그리고 그 아래에 있는 모든 것도 무시하고 싶습니다)..gitignore에서 이 패턴들을 각각 시도해 보았지만 모두 작동하지 않습니다.

/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too

누가 저 좀 도와주실 수 있나요?첫 번째 패턴(작동해야 한다고 생각하는 패턴)은 다음과 같이 수행하면 잘 작동합니다.

/main/**/bin/**/*

그러나 모든 최상위 디렉터리에 대한 항목을 가지고 싶지 않으며 새 디렉터리를 추가할 때마다 .gitignore를 수정할 필요도 없습니다.또한 이름에 'bin'이라는 하위 문자열이 있는 파일과 디렉터리가 있는데, 를 보관하고 싶습니다.

이것은 최신 msysgit를 사용하는 Windows에서 발생합니다.

1 이전 , § 1.8.2 이전 버전,**한 의미가 .gitignore으로 1.8.2 git을 지원합니다.**0개 이상의 하위 디렉터리를 의미합니다(릴리스 노트 참조).

모든 은 디토리이트현리수아있준는에래불방은리모법디무는를시하리토렉든라렉고는의재▁a▁the▁with이입니다..gitignore패턴이 있는 파일:

bin/

man 페지이, 라디리무시예있다습니라는 .foo유사한 패턴을 사용합니다.

Git 인덱스에 더 이상 추적하지 않으려는 bin 폴더가 이미 있는 경우 해당 폴더를 명시적으로 제거해야 합니다.Git는 새로운 경로와 일치한다고 해서 이미 추적 중인 경로를 멈추지 않을 것입니다..gitignore양식.인덱스에서 폴더 제거(rm)만 재귀적(-r)으로 실행합니다.루트 bin 폴더의 명령줄 예:

git rm -r --cached bin

.gitignore당신의 꿈은 다음과 같습니다.

bin/

상층부에

나는 git 초보자들에게 언급할 가치가 있다고 생각합니다.

이미 체크인한 파일이 있지만 무시하려는 경우 나중에 규칙을 추가해도 Git가 파일을 무시하지 않습니다.이 경우 터미널에서 다음 명령을 실행하여 파일 추적을 먼저 해제해야 합니다.

git rm --cached

따라서 .gitignore를 편집한 후 로컬 저장소의 일부 디렉터리(이미 존재)를 무시하도록 추가하려면 root dir에서 이 디렉터리를 실행합니다.

git rm --cached -r .
git add .

기본적으로 로컬 레포와 스테이징 해제된 무시된 파일을 '새로 고침'.

참조:

http://git-scm.com/docs/git-rm,

https://help.github.com/articles/ignoring-files/

**이전에는 제대로 작동한 적이 없지만 git 1.8.2(2013년 3월 8일) 이후로는 다음과 같이 명시적으로 언급되고 지원되는 것으로 보입니다.

.gitignore그리고..gitattributes파일은 0개 이상의 하위 디렉터리 수준과 일치하는 패턴으로 가질있습니다.

"sublish:"foo/**/bar 치항 목일 "와 합니다.bar"1987년"에서foo " 또체는의하디있자다습니에리토의 하위 디렉터리에 있습니다.foo".

이 경우 이 라인이 지원될 수 있습니다.

/main/**/bin/
[Bb]in/

대문자와 소문자가 모두 일치합니다.

1단계: .gitignore 파일에 다음 내용을 추가합니다.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/

# Visual Studio 2015 cache/options directory
.vs/

2단계: 효과가 있는지 확인

문제가 여전히 존재하는 경우 .gitignore의 설정은 원래 추적되지 않은 파일만 무시할 수 있기 때문입니다.일부 파일이 버전 제어 시스템에 이미 포함되어 있으면 .gitignore 수정은 유효하지 않습니다.이 문제를 완전히 해결하려면 Git Bash 또는 Package Manager Console(아래 스크린샷 참조)을 열어 리포지토리 루트 폴더에서 다음 명령을 실행해야 합니다.

git rm -r --cached .
git add .
git commit -m "Update .gitignore"

PM 콘솔 그러면 그 문제는 완전히 해결될 것입니다.

여기서 언급된 것을 보지 못했지만 대소문자를 구분하는 것 같습니다./Bin으로 변경한 후 파일이 예상대로 무시되었습니다.

[Bb]in문제는 해결되겠지만...다음은 무시해야 할 항목의 보다 광범위한 목록입니다(GitExtension별 샘플 목록).

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.sbr
obj/
[Rr]elease*/
_ReSharper*/

글로벌을 .gitignoreVisual Studio(.NET) 솔루션용 파일 - 다음을 사용하는 것이 좋습니다. https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

인 AFAIK를 있습니다..gitignore.프로젝트의 NET 프로젝트용.

말 그대로 제게 맞는 답은 하나도 없었습니다. 제게 맞는 답은 (Linux에서) 단 하나뿐이었습니다.

**/bin
(yes without the / in the end)

git version 2.18.0 

2.13.3 이상의 경우 .gitignore 파일에 bin만 기록하면 bin과 모든 하위 디렉터리 및 파일이 무시됩니다.

쓰레기통

통지로서;

생각해보면,.gitignore어떤 식으로든 작동하지 않습니다(따라서 추가됨).foo/*는 있지만 폴에있 지만더git status 이할 수 . 그런 다음 이 명령을 사용할 수 있습니다.

git checkout -- foo/*

**/bin/을 .gitignore 파일에 추가하면 효과가 있습니다(참고: bin 폴더는 인덱스에 추가되지 않았습니다).

@CB Bailey의 답변 외에도:

폴더에 폴더를 개 .et-cache(Wordpress 테마의 폴더 캐싱)을 인덱스에서 추적할 수 없습니다.

추가했습니다.

et-cache/

에게.gitignore파일. 하지만

git rm -r --cached et-cache

오류가 발생했습니다.

fatal: 경로 지정 'et-cache'가 어떤 파일과도 일치하지 않습니다.

해결책은 파워셸을 사용하는 것이었습니다.

Get-ChildItem et-cache -Recurse |% {git rm -r --cached $_.FullName}

이렇게 하면 e-cache라는 이름의 모든 하위 폴더가 검색됩니다.그런 다음 각 폴더 경로(전체 이름)를 사용하여 추적에서 제거합니다.

안에 있는 패턴이.gitignore슬래시로 끝납니다./디렉토리와 일치하는 항목만 찾을 수 있습니다.

다른 말로 하면,bin/디렉토리와 일치합니다.bin및 경로 아래에 있지만 일반 파일 또는 심볼릭 링크와 일치하지 않습니다.bin.


패턴에 슬래시가 포함되지 않은 경우 다음과 같이binGit는 이를 셸 글로브 패턴(탐욕)으로 처리합니다.따라서 단순하게 사용하는 것이 가장 좋습니다./bin.

bin이 특정 문제에 대한 최선의 해결책은 아닙니다.

나의 경우 gitignore 파일의 인코딩이 문제가 있어 UTF-8인지 확인합니다.

언급URL : https://stackoverflow.com/questions/1470572/ignoring-any-bin-directory-on-a-git-project

반응형