Git 명령 시작: 다양한 도구(Git Grep2) 813번

8653 단어 GitGitHubtech
안녕하세요!이번에도 지난번과 마찬가지로 git grep을 계속 공부합니다.검색 대상은 작업 디렉터리 이외에 각 디버깅에 대해서도 가능합니다.나도 이 방면을 시험해 보고 싶다.또한, 환경이 지난번과 같기 때문에 환경 제작은 지난번의 내용을 참고하세요!

저번 기사는 이쪽부터!


https://zenn.dev/shiozumi/articles/ce135827cebf1f

오늘 공부도 계속, 이쪽!


https://git-scm.com/book/ja/v2/Git-도구 - 찾기
7.5Git의 다양한 도구 - 검색

git 본가의 정보는 여기서부터 시작!


https://git-scm.com/book/ja/v2

우선, 우리는 커미션을 지정합니다!


$ 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(+)
  • 1st,sample.php를 추가합니다
  • 2nd,test.php를 추가합니다
  • 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'
    $
    // 何も検索でヒットしませんでした。(^▽^;)
    
    어?!작업 디렉토리를 읽어들이지 않습니다.

    본가의 수첩을 봐라!


    https://git-scm.com/docs/git-grep

    구글 번역
    작업 트리 추적 파일, 색인 파일에 등록된 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이면 되는 당연한 일이죠.(^▽^;)

    그럼, 이번엔 여기까지 수고하셨습니다!


    https://zenn.dev/shiozumi/articles/d32b7e2f797206

    좋은 웹페이지 즐겨찾기