여러 브랜치를 일괄 삭제하고 싶습니다.

3645 단어 GitPeco

어려움



눈치채면 수중에 브런치가 많이 존재한 상태가 되어, 1개씩.. 동료에게 같은 고민이 없는지 들었는데, master 등 특정 브랜치 이외를 일괄 삭제하는 스크립트를 사용하는 것이었지만, 그렇다면 작업 중인 브랜치도 삭제되어 버리므로 자신의 기대 거리가 아니었습니다.
$ git branch
  hoge
  hoge1
* hoge10
  hoge2
  hoge3
  hoge4
  hoge5
  hoge6
  hoge7
  hoge8
  hoge9
  master

하고 싶은 일


  • 무언가 명령을 두드린다
  • 브랜치 목록이 표시됩니다 (절대 삭제하지 않는 브랜치는 미리 필터링됩니다.
  • 브랜치 목록에서 여러 가지 브랜치를 쉽게 선택할 수 있습니다
  • 엔터 키를 누르면 임의의 브랜치가 일괄 적으로 삭제된다


  • 해결 방법



    과제는 브랜치 리스트상에서 임의의 브랜치를 복수개 선택하는 방법이었지만, peco (을)를 사용하는 것으로 간단하게 할 수 있었다. peco에는 여러 줄 선택 기능이 있었으므로 브랜치를 여러 개 선택할 수있었습니다. 그리고는 git의 브랜치 삭제 커멘드에 건네주면 해결. git의 alias 설정을 해 두는 것으로 곧바로 호출할 수 있도록(듯이) 했다. git branch -d hoge를 선호로 설정하십시오.
    [alias]
        select-delete-branch = !git b -D $(git branch | grep -v '*' | grep -v master | sed 's/ //g' | peco)
    

    실행 예


    $ git branch
    aaa
      bbb
      ccc
      ddd
      eee
      fff
    * master
    $ git select-delete-branch
    # 以下が表示されるので Control + Space で複数選択をする
    QUERY>                                                                                                                                                                             IgnoreCase [6 (1/1)]
    aaa
    bbb
    ccc
    ddd
    eee
    fff
    
    # エンターキーを押すと以下のように一括で削除される
    Deleted branch aaa (was 3d9df20).
    Deleted branch bbb (was 3d9df20).
    Deleted branch ccc (was 3d9df20).
    Deleted branch ddd (was 3d9df20).
    Deleted branch eee (was 3d9df20).
    Deleted branch fff (was 3d9df20)
    

    굉장히 편리~!
    select-delete-branch가 다른 앱에서 사용 중이면 peco의 키맵 설정을 변경할 수 있습니다.

    요약



    실은 처음은 쉘 스크립트 그리고 같은 일을 하고 있었습니다만, 기존 라이브러리로 보다 편하게 할 수 있는 것은? 라고 생각하고 있으면, peco로 바삭하게 할 수 있었다. peco, 편리하네요.

    좋은 웹페이지 즐겨찾기