git add * (별표) vs git add. (기간)
git을 처음 사용하고 git에 파일을 추가하는 방법에 대한 질문이 있습니다. 나는 사이의 차이에 대한 여러 유래의 질문에 발견 git add .
하고 git add -a
, git add --all
, git add -A
, 등 그러나 나는 무엇을 설명하는 장소 찾을 수 있었어요 git add *
수행합니다. git add man page 도 보았지만 도움이되지 않았습니다. 대신에 사용하고 있는데 git add .
동료가 이유를 물었습니다. 나는 대답이 없었다. 난 그냥 항상 사용했습니다 git add *
.
인가 git add .
와 git add *
같은? 하나는 현재 디렉토리에서만 변경된 파일을 추가하고 다른 하나는 현재 디렉토리와 하위 디렉토리에서 (재귀 적으로) 파일을 추가합니까?
쇼 차이가 사이 다른 스택 질문 중 하나에 나와있는 좋은 차트있다 git add -A
git add .
및 git add -u
하지만이없는가 git add *
.
참고 : 별표를 와일드 카드로 사용한다는 것이 무슨 의미인지 이해합니다 (지정된 확장자를 가진 모든 파일 추가). 예를 들어, git add *.html
있는 모든 파일을 추가합니다 .html
(그러나 무시 확장을 .css
, .js
등).
도와 주셔서 감사합니다!
add *
이름이 점으로 시작하는 파일을 제외하고 현재 디렉토리에 모든 파일을 추가하는 것을 의미합니다. 이것은 쉘 기능이며 Git은 파일 목록 만 수신합니다.
add .
쉘에서 특별한 의미가 없으므로 Git은 전체 디렉토리를 재귀 적으로 추가합니다.이 디렉토리는 거의 동일하지만 이름이 점으로 시작하는 파일을 포함합니다.
*
git의 일부가 아닙니다-쉘에 의해 해석되는 와일드 카드입니다. *
현재 디렉토리의 모든 파일로 확장 된 다음 git에만 전달되어 모든 파일을 전달 add
합니다. .
현재 디렉토리 자체이며 git add
ing하면 디렉토리 와 그 아래의 모든 파일이 추가됩니다.
.
쉘 에서 점 을 사용하는 것은 일반적으로 "현재 디렉토리"를 의미합니다.
*
쉘 에서 별표를 사용하면 라는 기능 file-globbing
이 사용됩니다. 예를 들어 bash에서 함수 glob()
는 바로 그 일을하고 있습니다. glob ( man 7 glob
)에 대한 맨 페이지 상태 :
기술
Long ago, in UNIX V6, there was a program /etc/glob that would expand wildcard patterns. Soon afterward this became a shell built-in. These days there is also a library routine glob(3) that will perform this function for a user program.
와일드 카드 일치
A string is a wildcard pattern if it contains one of the characters '?', '*' or '['.
글 로빙
Globbing is the operation that expands a wildcard pattern into the list of pathnames matching the pattern.
즉 '?'
, '*'
또는 을 포함하는 명령 줄의 모든 프로그램에 인수를 전달하면 '['
먼저 globbing은 와일드 카드 패턴을 파일 목록으로 확장 한 다음 이러한 파일을 프로그램 자체에 대한 인수로 제공합니다.
사이의 차이를 의미 'git add .'
하고 'git add *'
명확하게 설명되어 데니스 :
git add
파일 목록이 추가 될 것으로 예상합니다. 위의 예에서 쉘 은 각각 확장 *
되거나 .
결과를 git add에 대한 매개 변수로 제공합니다. 차이점은 git add .
git을 사용하면 현재 디렉토리로 확장되는 반면 git add *
파일 globbing은 트리거되고 점으로 시작하지 않는 모든 파일 및 디렉토리로 확장됩니다.
명확성을 기하기 위해 아래 표에 답을 입력했습니다.
추가 노트 (@ reka18 의견에서 영감을 얻음) :
주 1. git add -A
및 git add -u
명령은 추가 정제 (파일 이름에 대한 하위 디렉토리 또는 마스크 표시) 전체 작업 디렉토리 (또한 우리가 디렉토리의 작업 디렉토리에서 명령을 실행하는 경우)의 범위에서 작동 될 추가 매개 변수없이 수행.
2. 참고 을 .
하고 *
각각 명령의 경로를 명확히 디렉토리 경로 (현재 디렉토리)와 와일드 카드입니다. 예를 들어, git add .
or git add *
명령이 작업 디렉토리의 일부 서브 디렉토리에서 실행되면 해당 조치는 전체 작업 디렉토리가 아닌이 서브 디렉토리 내에서만 사용됩니다.
주 3git add -A
및 git add -u
명령을 상기 경로를 추가하거나, 예를 들면, 파일에 대한 마스크에 의해 정제 할 수있다 git add -A app/controllers
나 git add -u app\styles\*
.
참고 URL : https://stackoverflow.com/questions/26042390/git-add-asterisk-vs-git-add-period
'programing tip' 카테고리의 다른 글
빌드 도구 란 무엇입니까? (0) | 2020.08.02 |
---|---|
iPhone 시뮬레이터에서 카메라를 어떻게 테스트합니까? (0) | 2020.08.02 |
이 피보나치 기능은 어떻게 기억됩니까? (0) | 2020.08.02 |
java.util.Date와 XMLGregorianCalendar 간의 간단한 변환 (0) | 2020.08.02 |
"스텁"이란 무엇입니까? (0) | 2020.08.02 |