모든 파일에 일부 변경 사항을 적용하려면 pom.xml
다음 명령을 실행합니다.
git checkout --theirs **/**/**/**/pom.xml
git checkout --theirs **/**/**/pom.xml
git checkout --theirs **/**/pom.xml
git checkout --theirs **/pom.xml
git checkout --theirs pom.xml
pom.xml
그러나 디렉토리 깊이에 관계없이 모든 파일에 대한 대체 파일을 찾을 수 없습니다 .
단일 명령으로 수행 중인 작업을 어떻게 수행할 수 있습니까?
답변1
귀하의 요청에 따라 가능한 답변은 두 가지입니다. 아직 존재하지 않는 파일이나 디렉터리를 일치시키기 위해 쉘 와일드카드를 사용할 수 없습니다. 따라서 git
파일 시스템에 이미 존재하지 않는 한 체크아웃할 항목을 표시하기 위해 쉘 와일드카드를 사용할 수 없습니다 . 다행히도 git
이 상황에서는 기본적으로 와일드카드를 지원합니다.
특히 , 셸이 확장을 시도하지 않고 자체적 으로
git
전달해야 합니다 . 이 경우 따옴표를 사용하여 문자열을 리터럴로 전달합니다 .**
git
git
git checkout '**/pom.xml'
git
bash
바이너리 와일드카드 확장은 셸 외부에서 지원됩니다. 문서(man bash
)는 다음과 같이 씁니다.globstar
**
설정된 경우 경로 이름 확장 컨텍스트에 사용된 패턴은 모든 파일과 0개 이상의 디렉터리 및 하위 디렉터리와 일치합니다. 패턴 뒤에 가 오면/
디렉터리와 하위 디렉터리만 일치합니다.이는 일반적으로 기본적으로 활성화되어 있지 않은 옵션이므로
bash
활성화해야 합니다.shopt -s globstar
나중에 예를 들어,
ls **/pom.xml