Git 명령 시작: 다양한 도구(Git Grep2) 813번
저번 기사는 이쪽부터!
오늘 공부도 계속, 이쪽!
7.5Git의 다양한 도구 - 검색
git 본가의 정보는 여기서부터 시작!
우선, 우리는 커미션을 지정합니다!
$ git log --stat --oneline
3071fcb (HEAD -> main, origin/main) 2nd
test.php | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
3bee1de 1st
sample.php | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
git grep-c'echo'3071fcb에서 두 번째 제출을 지정합니다!
$ git grep -c 'echo' 3071fcb
3071fcb:sample.php:5
3071fcb:test.php:2
git grep-c'echo'3bee1de에서 첫 번째 제출을 지정합니다!
$ git grep -c 'echo' 3bee1de
3bee1de:sample.php:5
처음 제출했을 때,test.php 파일이 없기 때문에 Sample입니다.결과는 php밖에 없습니다.작업공간에서 파일 삭제, 3rd 제출
git rm test.php // <!-- 削除
git rm sample.php // <!-- 削除
git commit -m "3rd"
[main 3882998] 3rd
2 files changed, 51 deletions(-)
delete mode 100755 sample.php
delete mode 100755 test.php
// --stat でファイルの追加、削除を確認!
$ git log --stat --oneline
3882998 (HEAD -> main) 3rd
sample.php | 35 -----------------------------------
test.php | 16 ----------------
2 files changed, 51 deletions(-)
3071fcb (origin/main) 2nd
test.php | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
3bee1de 1st
sample.php | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
git grep-c'echo'3882998에서 세 번째 제출을 지정합니다!
$ git grep -c 'echo' 3882998
$
물론, 이것은 당연한 것이지만, 아무것도 표시되지 않았다!git restore --source=3071fc --worktree sample.php
$ git restore --source=3071fc --worktree sample.php
// 2nd コミットから、sample.php をリストアーします!
$ ls
sample.php
// 無事、ファイルを取り出して!
$ git grep -c 'echo'
$
// 何も検索でヒットしませんでした。(^▽^;)
어?!작업 디렉토리를 읽어들이지 않습니다.본가의 수첩을 봐라!
구글 번역
작업 트리 추적 파일, 색인 파일에 등록된 blocb, 지정한 트리 대상의 blocb에서 지정한 모드를 찾습니다.모드는 줄 바꿈으로 구분된 하나 이상의 검색 표현식 목록입니다.빈 문자열은 검색 표현식으로 모든 줄과 일치합니다.
작업 트리의 추적 파일입니다.
$ git status -s
?? sample.php
// この状態だと、追跡ファイルになっていませんね。
$ git add .
// add してからの!
$ git status -s
A sample.php
// これで、追跡対象となりました!
$ git grep -c 'echo'
sample.php:5
// これで、検索対象となりました!
다음은 테스트입니다.php도 리셋!이번, 추가 --staged 옵션,dd를 생략합니다!
git restore --source=3071fc --worktree --staged test.php
$ git restore --source=3071fc --worktree --staged test.php
$ git status -s
A sample.php
A test.php
// どちらのファイルも、Aなので追跡対象となっています。
$ git grep -c 'echo'
sample.php:5
test.php:2
그럼, 원래의 위치로 돌아가자!
$ git reset --hard HEAD
HEAD is now at 3882998 3rd
// では、一度、git reset --hard
// ワーキングディレクトリーをクリア!
$ git grep -c --cached 'echo'
$ ls
$ git status -s
// 無事、なにも検索にヒットしなくなりましたね!
총결산
그럼, 어때요?제본 영역을 대상으로 하기 때문에, 파일add를 추적 대상으로 하지 않으면 검색 대상 범위에 없습니다.아~ 일반적인 파일 대상이라면 Linux 명령의grep이면 되는 당연한 일이죠.(^▽^;)
그럼, 이번엔 여기까지 수고하셨습니다!
Reference
이 문제에 관하여(Git 명령 시작: 다양한 도구(Git Grep2) 813번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/shiozumi/articles/ad3f3f50393e11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)