사용이 편리한 CLI 도구

11460 단어 Git

배경


이것은 매일의 업무와 개인 팀 개발에 사용되는git 관련 도구 소개입니다.
git 명령은 매우 편리하지만 다른 주변 도구를 사용하면 더욱 편리하게 사용할 수 있습니다.
(기본적으로 맥과 linux에서만 실행되지만 일부는 윈도우즈에서 사용할 수 없습니다.)

github/hub



github/hub
잘 아는 과자.
CLI에서 현재 디렉터리의 github 페이지를 당기거나 열 수 있습니다.
만약 GitHub와 GitHub Enterprise를 사용한다면 넣어야 한다고 생각합니다.
원본 읽기git clone {user}/{repo}만 해도 클론을 사용할 수 있어 편리합니다.

참고문

  • CLI에서 GitHub를 사용할 때 편리한 명령 Hub 명령을 사용하는 방법에 대해 설명합니다!
  • 설치

    $ brew install hub
    
    # aliasを貼ることを公式でも推奨している
    (bash/zsh)$ eval "$(hub alias -s)"
    
    (fish)$ eval (hub alias -s)
    
    기본적인 사용법공식.과 정보가 충실하니 저쪽을 보세요.

    jonas/tig


    jonas/tig
    로그 트리, 디프, 가지를 예쁘게 볼 수 있는 도구입니다.
    조작 방법도vimlike이고 사용 방법도 간단합니다.
    물론 작업 중add와commit를 진행할 수 있습니다.

    tig의 상세한 설정은tigrc로 진행하는 것이 습관이다.
    (복제용으로만 사용하기 때문에 자세한 내용은 알 수 없습니다.)
    tigrc.sample
    # set key 'g' / goto file top
    bind generic g      move-first-line
    # set key 'G' / goto file bottom
    bind generic G      move-last-line
    bind main    G      move-last-line
    # set key 'E'
    bind generic E      view-grep
    # set key 'F'
    bind generic F      ?git fetch %(remote)
    bind main    F      ?git fetch %(remote)
    # set key 'U'
    bind generic U      ?git pull %(remote)
    # set key 'C'
    bind generic C      !git commit
    #bind refs    C      !git commit
    bind main    C      !git commit
    # set key 'P'
    bind generic P      ?git push -u %(remote) %(repo:head)
    
  • Tig에서 Git를 자유롭게 조작하기 위해tigrc 설정 예
  • 매우 자세한 tig 설정 안내서 (제어편 보이기)
  • 참고문

  • tig로git를 더 편리하게!add 및 commit
  • tig의 사용 방법과 옵션을 총결하였다
  • 설치

    $ brew install tig
    

    junegunn/fzf


    junegunn/fzf
    fzf는 CLI 도구로서 추가 검색이 가능합니다.
    git용 도구는 아니지만 조합하기 편리한 기능이 가득합니다.
    다음 함수만 정의하면 fzf를 사용하여 모호한 검색을 증가시키는 동시에 지점을 전환할 수 있습니다.
    bashrc
    fbr() {
      local branches branch
      branches=$(git branch -vv) &&
      branch=$(echo "$branches" | fzf +m) &&
      git checkout $(echo "$branch" | awk '{print $1}' | sed "s/.* //")
    }
    
    마찬가지로 다음과 같이 함수를 정의하면 파일의 차이를 표시하면서 이동으로 올라가는 작업을 간단하게 할 수 있다.
    이렇게 말하는 정보는 공식적인 것도 있고 대량의 네트워크도 있기 때문에 이 방면의 입문은 매우 쉽고 매우 좋다.
    bashrc
    fga() {
      modified_files=$(git status --short | awk '{print $2}') &&
      selected_files=$(echo "$modified_files" | fzf -m --preview 'git diff {}') &&
      git add $selected_files
    }
    
    겸사겸사 말씀드리지만, 설치는 고입니다.
    다른 함수 같은 것도 여기 에 쓰여 있으니 보십시오.

    참고문

  • fzf로 할게요.
  • fzf를 이용하여 Terminal의 작업 효율을 높이다
  • 설치

    $ brew install fzf
    
    # To install useful key bindings and fuzzy completion:
    $ $(brew --prefix)/opt/fzf/install
    

    lazygit


    jesseduffield/lazygit
    git 명령에 사용할 간단한tui입니다.
    add,commit 등 기본적인 조작은 말할 것도 없고blame,PR의 제작 등도 단말기에서 진행할 수 있다.
    키보드뿐만 아니라 마우스도 조작할 수 있어 GUI에서 갈아타는 것도 비교적 쉽다.

    참고문

  • lazygit-터미널용 Git UI
  • "git 명령줄에 있어요!"좋아하는 사람에게 추천하다
  • 종점에서 Source Tree나 Git Kraken처럼 할 수 있는 lazygit.
  • 기타


    저자는git를 위한 도구뿐만 아니라docker를 위한 TUI 도구도 제작하여 매우 편리하고 추천할 만하다.각 용기의 CPU 사용률과 docker-compose 사용 시 로그 확인 등 기능이 풍부하여 매우 편리하다.
  • jesseduffield/lazydocker
  • 설치

    $ brew install jesseduffield/lazygit/lazygit
    

    (vim 플러그인)vim-fugitive


    tpope/vim-fugitive
    cli 도구가 아닌vimplugin.
    fugitive는vim용git 플러그인입니다.
    vim에서 편집->commit 등 작업은 vim를 종료하지 않고 진행할 수 있습니다.
    blame와 diff도vim을 종료하지 않은 상태에서 사용할 수 있습니다.

    설치


    vimplugin 관리자를 사용할 때 다음과 같이 설정합니다.
    [[plugins]]
    repo = 'tpope/vim-fugitive'
    
    keybind 개인 설정은 다음과 같습니다.
    vimrc
    " ========================↲
    " airblade/vim-gitgutter↲
    " ========================↲
    nnoremap [gitgutter] <Nop>↲
    nmap <C-h> [gitgutter]↲
    nmap [gitgutter]j <Plug>GitGutterNextHunk
    nmap [gitgutter]k <Plug>GitGutterPrevHunk
    nmap [gitgutter]u <Plug>GitGutterUndoHunk
    
  • Vimmer의 Git 사용은 fugitive입니다.지금 바로 vim을 넣는 게 좋을 것 같아요.
  • 총결산


    git 명령,github는 편리한 기능이 많아서 기억이 안 나요. 그래서 이런 도구를 사용하면 익숙하게 사용할 수 있다는 느낌이 듭니다. 저는 개인적으로 만족합니다.
    tiimgreen/github-cheat-sheet
    편리해 보이는 기능은 전체적으로 ↑ 에서 찾습니다.tool에서는 사용할 수 없고 반복적으로 사용하는 느낌입니다. 그래서 언제 공부를 좀 해볼까요...

    좋은 웹페이지 즐겨찾기