2014-01-21 3 views
1

git add *.c은 하위 디렉토리가 아닌 현재 디렉토리에서만 일치하는 파일을 추가합니다. 파일이 현재 디렉토리에서 검색된 패턴과 일치하지 않으면 git add *.c이 하위 디렉토리에서 일치하는 파일을 추가하고있는 것으로 나타났습니다.git add - 현재 디렉토리에서 패턴이 일치하지 않으면 와일드 카드를 사용하여 파일을 추가하지 마십시오.

아무도이 동작을 피하는 방법을 알고 있습니까?

답변

2

git add "/*.c"이 트릭을 수행해야합니다.

슬래시는 Git에게 현재 폴더 만 볼 것을 지시합니다.

Git이 모든 종류의 비정상적인 동작을 일으키기 전에 항상 덩어리 패턴을 확장하려고 시도 할 수도 있습니다.

3

git이 와일드 카드를 처리 할 때 어떤 파일에서든 과 일치하는 것으로 가정하면입니다. 이 동작을 보는 이유는 셸이 현재 디렉터리에서 해당 와일드 카드가 일치하는 경우 명시적인 파일 목록으로 *.c을 확장하기 때문입니다. 이 경우 Git은 와일드 카드가 아닌 .c 파일의 명시적인 목록을보고 있습니다.

현재 디렉토리의 파일이 해당 패턴과 일치하지 않기 때문에 셸이 *.c으로 확장되지 않는 경우 와일드 카드 패턴은 확장 자체를 수행하고 하위 디렉토리에서 일치하는 Git으로 unexpanded가 전달됩니다. 당신이 떠들썩한 파티를 사용하는 경우

당신은 쉘이 오류가 발생하고 패턴이 일치하지 않는 경우 git add을 실행하지 shopt -s failglob를 와일드 카드가 비워 확장하거나 할 shopt -s nullglob를 사용할 수 있습니다.