git : glob 패턴과 일치하는 디렉토리 하위 트리의 모든 파일을 재귀 적으로 추가하려면 어떻게해야합니까?
내부에 여러 .screen 파일 /xxx/documentation
과 Git에서 이미 추적하는 하위 디렉터리가 있습니다.
이러한 화면 파일을 많이 수정 한 후의 설명서 git add documentation/\\*.screen
의 첫 번째 예에 표시된대로 git-add
이러한 파일을 스테이징하기 위해 실행하지만 명령이 실패합니다.
치명적 : pathspec 'documentation / \ *. screen'이 일치하는 파일이 없습니다.
내 명령이 나쁘거나 git에 버그가 있습니까?
문서의 버그입니다. 별표를
$ git add documentation / \ *. screen
또는
$ git add 'documentation / *. screen'
원하는 동작을 얻으려면.
대신 현재 디렉토리에만 파일을 추가하려면
$ git add * .screen
업데이트 : 문제를 해결 하는 패치 를 제출했는데 이제 버전 1.6.6.2에서 수정 되었습니다.
나는 받아 들인 대답을 시도했지만 저에게 효과가 없었습니다 .. 그래서 누군가 문제를 일으킬 수있는 다양한 측면을 해부하는 데 시간을 소비하지 않고 일을 끝내고 자하는 경우를 대비하여 여기에 있습니다.
find documentation -name "*.screen" | xargs git add -u
// git-add의 -u 옵션은 이전에 추적 및 수정 된 파일 만 색인에 추가합니다.
셸에 찾도록 명령했습니다 *.screen
(즉, "로 끝나는 모든 파일이 아닌 정확히이 문자열-존재하지 않는-" .screen
). \\
셸이 파일 이름 확장을 수행 할 수 있도록 생략 합니다.
이것은 내가 디렉토리의 모든 파일을 추가하는 유사한 문제에 방금 사용한 것입니다.
find . | sed "s/\(.*\)/\"\1\"/g" | xargs git add
원래 질문의 경우 명령은 다음과 같습니다.
find -name "*.screen" | sed "s/\(.*\)/\"\1\"/g" | xargs git add
완전히 지정된 파일 이름에 공백이 포함 된 경우를 다루고 있습니다. 그게 내 대답입니다. |
추가 할 다른 파일을 선택 하려면 첫 번째 부분을 편집 하십시오.
git add * .java는 모든 Java 파일을 재귀 적으로 추가하도록 작동합니다.
시험
git add ./documentation/*.screen
'development' 카테고리의 다른 글
Eclipse 바로 가기 키가 Windows에서 갑자기 작동하지 않습니다. (0) | 2020.12.30 |
---|---|
'ref'속성의 실제 목적은 무엇입니까? (0) | 2020.12.30 |
Android 환경 설정 키를 저장할 위치 (0) | 2020.12.30 |
키별로 정렬 된 사전의 키 / 값 쌍 반복 (0) | 2020.12.30 |
time ()은 좋은 소금입니까? (0) | 2020.12.30 |