git 명령에서<pathspec></pathspec>
매개 변수 : GIT의 강력한 기능을 유연하게 사용합니다
GIT 명령 문서를 검토 할 때 많은 명령에<pathspec></pathspec>
옵션. 처음에는 이것이 "경로"에 대한 기술적 인 진술 일 뿐이며 디렉토리와 파일 이름 만 수락 할 수 있다고 생각할 수 있습니다. 그러나 더 깊은 이해를 한 후에는 GIT 명령이<pathspec></pathspec>
당신이 생각하는 것보다 훨씬 강합니다.
<pathspec></pathspec>
GIT 명령의 범위를 제한하기 위해 GIT가 사용하는 메커니즘으로 명령의 실행 범위를 리포지토리의 하위 집합으로 제한합니다. 당신이 그것을 모르더라도, 당신은 이미 그것을 사용하고있을 것입니다<pathspec></pathspec>
지금. 예를 들어, 명령 git add README.md
,<pathspec></pathspec>
README.md
입니다. 하지만<pathspec></pathspec>
보다 세련되고 유연한 작업을 달성하는 능력.
공부하다<pathspec></pathspec>
장점은 많은 GIT 명령의 기능을 크게 향상 시킨다는 것입니다. 예를 들어, git add
사용하면 단일 디렉토리에 파일을 추가 할 수 있습니다. git diff
사용하면 .scss
확장자만으로 파일 이름으로 변경된 변경 사항을 확인할 수 있습니다. git grep
사용하여 모든 파일을 검색 할 수도 있지만 디렉토리 /dist
디렉토리에서 파일을 제외 할 수도 있습니다.
또한,<pathspec></pathspec>
보다 일반적인 git 별칭을 작성하는 데 도움이됩니다. 예를 들어, 모든 저장소 파일에서 문자열 "todo"를 검색하는 git todo
라는 별칭이 있습니다. 그러나 현재 작업 디렉토리에 있지 않더라도 문자열의 모든 인스턴스를 표시하고 싶습니다. 사용<pathspec></pathspec>
, 우리는 이것을 달성 할 수 있습니다.
파일 또는 디렉토리
사용<pathspec></pathspec>
가장 직접적인 방법은 디렉토리 및/또는 파일 이름을 사용하는 것입니다. 예를 들어, git add
사용하면 다음을 수행 할 수 있습니다 .
, src/
and README
각각 각 명령에 대한 명령입니다.<pathspec></pathspec>
.
git 추가. # 현재 작업 디렉토리 (CWD) 추가 git src/ # 추가 src/ directory git add add readme # readme 파일 추가
여러 명령을 하나의 명령을 추가 할 수도 있습니다<pathspec></pathspec>
:
git src/ server/ # src/ 및 서버/ 디렉토리 추가 추가
때로는 명령을 볼 수 있습니다<pathspec></pathspec>
그 --
있습니다. 이것은 제거하는 데 사용됩니다<pathspec></pathspec>
명령의 다른 부분 사이의 모호성.
와일드 카드
파일 및 디렉토리 외에도 *
?
패턴과 일치하는 []
. *
기호는 와일드 카드로 사용되며 경로에서 일치 /
일치합니다 . 즉, 하위 디렉터를 검색합니다.
git log '*.js' # cwd 및 subdirectories git log의 모든 .js 파일을 녹화하십시오.
인용문은 특히 *
사용할 때 매우 중요합니다. 그들은 당신의 껍질 (예 : bash 또는 zsh)이 그 자체로 와일드 카드를 확장하는 것을 방지합니다. 예를 들어, git ls-files
따옴표가 있거나없는 파일을 나열하는 방법을 살펴 보겠습니다.
# 샘플 디렉토리 구조# #. # ock ── Package-lock.json # j ──) package.json # └ └ 확장 - 데이터 # j ── bar.json #. --) baz.json #. ── foo.json git ls-files *.json # package-lock.json # package.json git ls-files '*.json' # data/bar.json # data/baz.json # data/foo.json # package-lock.json # package.json
첫 번째 명령에서 쉘이 *
확장되므로 git ls-files
가받은 명령은 git ls-files package-lock.json package.json
입니다. 따옴표는 git이 와일드 카드를 확장하는 파티인지 확인하십시오.
당신은 또한 사용할 수 있습니까 ?
단일 캐릭터를위한 와일드 카드로 캐릭터. 예를 들어, MP3 또는 MP4 파일과 일치하려면 다음을 수행 할 수 있습니다.
git ls-files '*.mp?'
사각형 브래킷 표현
"Square Bracket Expressions"를 사용하여 컬렉션의 개별 문자와 일치 할 수도 있습니다. 예를 들어, TypeScript 또는 JavaScript 파일을 일치하려면 [tj]
사용할 수 있습니다. 이것은 t
또는 j
와 일치합니다.
git ls-files '*. [tj] s'
.ts
파일 또는 .js
파일과 일치합니다. 문자를 사용하는 것 외에도 사각형 브래킷 표현식의 특정 문자 세트를 참조 할 수도 있습니다. 예를 들어, 사각형 브래킷 표현식으로 [:digit:]
사용하여 소수점 숫자와 일치하거나 [:space:]
사용하여 공간 문자와 일치 할 수 있습니다.
git ls-files '*.mp [[: digit :]]' # mp0, mp1, mp2, mp3, ..., mp9 git ls-files '*[[: space :]]*' # 공간이 포함 된 모든 경로와 일치합니다
사각형 브래킷 표현식 및 사용 방법에 대한 자세한 내용은 GNU 매뉴얼을 확인하십시오.
마법 서명
<pathspec></pathspec>
또한 "Magic Signature"라는 특수 도구가 있습니다.<pathspec></pathspec>
추가 기능을 잠금 해제하십시오. 이 "마법 서명"은 통과됩니다<pathspec></pathspec>
:(signature)
의 시작이 호출됩니다. 이해하지 못하면 걱정하지 마십시오. 몇 가지 예가 도움이 될 것입니다.
맨 위
top
서명은 GIT에게 현재 작업 디렉토리 대신 git 저장소의 루트에서 패턴과 일치하도록 지시합니다. :(top)
대신 약어 /
사용할 수도 있습니다.
git ls-files ': (상단)*. js' git ls-files ':/*. js' # 약어
.js
확장자가있는 저장소의 모든 파일을 나열합니다. 저장소의 하위 디렉토리에서 호출 할 수있는 top
서명을 사용하십시오. 일반적인 git 별칭을 쓸 때 이것이 특히 유용하다는 것을 알았습니다!
git config-global alias.js 'ls-files-': (상단)*. js ''
git js
사용하여 저장소의 어느 곳에서나 프로젝트에서 모든 JavaScript 파일 목록을 얻을 수 있습니다.
ICASE
icase
서명은 GIT에게 일치 할 때 케이스를 무시하도록 지시합니다. 이는 파일 이름의 경우에 신경 쓰지 않으면 매우 유용합니다. 예를 들어, 대문자 연장 JPG를 사용하는 JPG 파일과 일치하는 데 매우 유용합니다.
git ls-files ': (icase)*. jpg'
오자
literal
의 서명은 Git에게 모든 캐릭터를 문자 그대로 대우라고 지시합니다. 이 옵션은 *
와 같은 문자를 취급하려는 경우 사용할 수 있습니까 ?
와일드 카드보다는 그 자체로. 저장소의 파일 이름에 *
또는 ?
, 나는이 서명이 자주 사용될 것이라고 생각하지 않습니다.
git log ': (literal)*. js' # 파일의 로그를 반환합니다 '*.js'
글로벌
내가 배우기 시작했을 때<pathspec></pathspec>
야생 카드가 예전과 다르게 작동한다는 것을 알았을 때. 일반적으로, 나는 단일 별표 *
디렉토리의 어떤 것도 일치시키지 않는 와일드 카드로, "깊은"와일드 카드로서 연속적인 별표 ( **
)는 디렉토리의 이름과 일치 합니다 . 이 스타일의 와일드 카드를 선호하는 경우 glob
Magic Signatures를 사용할 수 있습니다!
이것은 프로젝트 디렉토리 구조 검색 방식을보다 세분화하려는 경우 매우 유용합니다. 예를 들어,이 두 git ls-files
어떻게 React 프로젝트를 검색하는지 살펴 보겠습니다.
git ls-files ': (glob) src/components/*/*. jsx' # "Top"JSX 구성 요소 git ls-files ': (glob) src/구성 요소/**/*. jsx' # "All"JSX 구성 요소
att
GIT는 특정 파일의 "속성"을 설정할 수 있습니다. .gitattributes
파일을 사용하여 이러한 속성을 설정할 수 있습니다.
<code># .gitattributes src/components/vendor/* vendored # 设置“vendored”属性src/styles/vendor/* vendored</code>
당신의 attr
Magic Signatures를 사용하십시오<pathspec></pathspec>
속성 요구 사항을 설정합니다. 예를 들어, 공급 업체의 위의 문서를 무시할 수 있습니다.
git ls-files ': (att
들어오지 못하게 하다
마지막으로, " exclude
"의 마법 서명이 있습니다 ( :!
또는 :^
). 이 서명은 다른 마법 서명과 다르게 작동합니다. 다른 모든 것을 해결하십시오<pathspec></pathspec>
그 후, 모든 exclude
서명은 구문 분석됩니다<pathspec></pathspec>
그런 다음 반환 된 경로에서 제거하십시오 . 예를 들어 .spec.js
테스트 파일을 제외하면서 모든 .js
파일을 검색 할 수 있습니다.
git grep 'foo' - '*.js' ': (제외)*. spec.js' # .js 파일 검색, .spec.js 제외. git grep 'foo' - '*.js' ':!*. spec.js'. # 위와 동일한 약어
조합 서명
당신을 단일로 제한 할 것이 없습니다<pathspec></pathspec>
여러 마법 서명을 사용하십시오! 마법 단어를 쉼표로 괄호로 분리하여 여러 서명을 사용할 수 있습니다. 예를 들어, 저장소 하단 ( top
사용), Case-Insensentitive ( icase
사용)에서 일치하려면 저자 코드를 사용하여 (벤더 파일을 무시하기 위해 attr
사용하고) 글로벌 스타일 와일드 카드 ( glob
사용) 만 사용하려면 다음을 수행 할 수 있습니다.
git ls-files-': (상단, Icase, glob, attr :! vendored) src/components/*/*. jsx'
당신이 결합 할 수없는 두 가지 마법의 서명은 glob
과 literal
입니다. 둘 다 git이 와일드 카드를 처리하는 방식에 영향을 미치기 때문입니다. 이것은 Git 용어집에 언급되어 있으며 아마도 내가 어떤 문서에서 읽은 가장 좋아하는 문장 일 것입니다.
Glob Magic은 문자 그대로의 마술과 호환되지 않습니다.
<pathspec></pathspec>
많은 GIT 명령의 필수 요소이지만 유연성은 즉시 보이지 않습니다. 와일드 카드와 마법 서명을 사용하는 방법을 배우면 GIT 명령 줄에서 능력을 두 배로 늘릴 수 있습니다.
위 내용은 Git Pathspecs 및 사용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

나는 다른 날이 질문을 받았다. 나의 첫 번째 생각은 : 이상한 질문입니다! 특이성은 선택기에 관한 것이며 At-Rules는 선택기가 아니므로 ... 무의미합니까?

그렇습니다. 당신은 할 수 있습니다. 그리고 그것은 실제로 어떤 순서로 중요하지 않습니다. CSS 전 처리기가 필요하지 않습니다. 일반 CSS에서 작동합니다.

CSS 및 JavaScript (및 이미지 및 글꼴 등)와 같은 자산에 멀리 떨어진 캐시 헤더를 설정해야합니다. 브라우저를 알려줍니다

많은 개발자들은 CSS 코드베이스를 유지하는 방법에 대해 글을 썼지 만 코드베이스의 품질을 어떻게 측정하는지에 대해 많은 글을 쓰지 않습니다. 물론, 우리는 가지고 있습니다

짧고 임의의 텍스트를 수락 해야하는 양식이 있습니까? 이름이나 다른 것 같습니다. 정확히 무엇을위한 것입니다. 많은 것이 있습니다

나는 프론트 컨퍼런스를 위해 스위스 취리히로 향하게되어 매우 기쁩니다 (그 이름과 URL을 사랑합니다!). 나는 전에 스위스에 가본 적이 없기 때문에 나는 흥분했다

소프트웨어 개발에서 제가 가장 좋아하는 개발 중 하나는 서버리스의 출현이었습니다. 세부 사항에 푹 빠지는 경향이있는 개발자로서

이 게시물에서는 들어오는 데이터를 위해 동적 경로를 만드는 방법을 보여주기 위해 NetLify에 구축하고 배포 한 전자 상거래 상점 데모를 사용합니다. 상당히입니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
