2011-01-21 5 views
7

Git에 디렉토리를 추가하는 방법이 있지만 .gitgnore에서 확장자를 제외 하시겠습니까?Git에 디렉토리를 추가하지만 .gitgnore에서 확장자를 제외시키는 방법이 있습니까?

예컨대 내가

git add console/* 

자식 응답하는 방법 명령이 자동으로 .gitignore 확장을 제외 할 수

$ git add console/* 
The following paths are ignored by one of your .gitignore files: 
console/networkprobing.ppu 
console/opsdatamodule.lrs 
console/opsdatamodule.o 
console/opsdatamodule.ppu 
console/rcacsSystemDM.compiled 
console/rcacsSystemDM.o 
console/rcacsSystemTestProcs.o 
console/rcacsSystemTestProcs.ppu 
Use -f if you really want to add them. 
fatal: no files added 

응답과 같은 디렉토리를 추가 할 명령을 실행할 때? 전달할 추가 옵션이 있습니까?

+0

이미'console /'에있는 모든 파일을 무시하고있는 것처럼 보입니다. 그렇지 않다면,'.gitignore' 파일에 무엇이 있으며, 제외시키지 않으려는 것은 무엇입니까? –

답변

10
git add console/* 

문제는 와일드 카드가 너무 자식-추가 정말 콘솔 디렉토리에있는 모든 파일을 전달되는, 쉘 globing으로 확장하고 직접 이눔에 전달되지 않는 것입니다 [1]. git-add는 디렉토리의 각 파일을 인수로 받기 때문에 무시한 파일을 추가하려고 시도 할 수 있다고 생각합니다. 따라서 경고 메시지가 표시되고 실제로 시도하려는 작업이있는 경우 -f를 사용하는 힌트가 있습니다. .

해결 방법은 쉘 글로브를 사용하지 말고 대신 디렉토리를 전달하는 것입니다. 마찬가지로

git add console 

REPO에 모든 것을 추가 할 수있는 적절한 방법 (A로 시작하는 파일을 포함한 '.')을 환매 특약을 무시 파일 [2]을 제외하고는 git add .하지 git add *을 사용하는 것입니다.

[1] '.'로 시작하는 것을 제외합니다. 셸과 같은 sh에 있고 Windows cmd.exe 명령 프롬프트에서이 작업을 시도하지 않는다고 가정합니다. Windows 명령 프롬프트를 사용하는 경우 msitgit의 Git-Bash 쉘 또는 git 설치 방법에 따라 cygwin의 쉘을 사용하도록 전환해야합니다.
[2] .gitignore는 추적되지 않은 파일이 추적되는 것을 방지하기 위해서만 사용됩니다. 파일이 이미 git에 의해 추적되고 있으면 repo에서 제거 될 때까지 계속 정상적으로 처리됩니다. 이것은 git rm --cached filename으로 실제 파일에 영향을주지 않고 수행 할 수 있습니다.

7

.gitignore은 쉘 스타일 glob 패턴을 취할 수 있습니다. 모든 .jpg 파일을 무시하려는 경우 따라서, 예를 들어, 당신은 .gitignore

# Ignore all JPEGs 
*.jpg 

를 추가 할 수 있습니다. 새 디렉토리의 JPEG 만 무시하려는 경우

new_directory/*.jpg 

그런 다음 정상적으로 디렉토리를 추가하십시오.

+0

나는 커맨드와 git의 결과물의 예제를 가지고 더 나은 질문을 설명했다. – vfclists

관련 문제