새 tmux Windows에서 Git 리포지토리를 복제하고 시작하기 위한 워크플로

8780 단어 terminalgittmux

목차


  • Overview
  • The Setup
  • Bonus
  • Summary

  • 개요



    Visual Studio Code에서 내가 정말 좋아하는 것 중 하나는 리포지토리를 복제하고 3단계의 빠른 단계를 통해 마찰이 거의 또는 전혀 없이 편집기에서 열 수 있는 기능입니다.
  • 명령 팔레트에서 다음을 선택하십시오. > Git: clone
  • 복제할 저장소 입력
  • 복제할 디렉토리를 선택하십시오.

  • 그런 다음 Visual Studio Code가 리포지토리에서 새 편집기를 시작하고 준비가 되었습니다.

    터미널 기반 개발 워크플로에서 비슷한 경험을 하고 싶습니다.

    해결책



    상위 수준에서 현재 솔루션은 복제할 저장소와 복제할 디렉터리를 사용자에게 묻는 bash 함수를 호출한 다음 새 tmux 창에서 저장소에서 vim을 실행하는 것입니다.

    다음은 bash 스크립트로 구현한 것입니다.

    git-clone-tmux() {
        local repo=""
        local directory=""
        local clone_path=""
    
        repo="${1}"
        directory="${2}"
    
        [ -z "${repo}" ] && read -e -p "Repo: " repo
        [ -z "${directory}" ] && read -e -p "Directory: " -i "${HOME}/Work" directory
    
        if [[ "${repo}" =~ ^github ]] || [[ "${repo}" =~ "${GH_HOST}" ]]; then
            clone_path="${directory}/${repo}"
            gh repo clone "${repo}" "${clone_path}"
        elif [[ "${repo}" =~ ^gitlab ]] || [[ "${repo}" =~ "${GL_HOST}" ]]; then
            clone_path="${directory}/${repo}"
            glab repo clone "${repo}" "${clone_path}"
        else
            clone_path="${directory}/$(basename ${repo})"
            git clone "${repo}" "${clone_path}"
        fi
    
        tmux new-window -c "${clone_path}" -n "${clone_path}" vim .
    }
    

    $ git-clone-tmux를 실행하면 어떻게 됩니까?
  • [ -z "${repo}" ] && read -e -p "Repo: " repo
  • ${repo}가 비어 있으면 사용자에게 대화식으로 프롬프트를 표시합니다
  • .

  • [ -z "${directory}" ] && read -e -p "Directory: " -i "${HOME}/Work" directory
  • ${directory}가 비어 있으면 사용자에게 대화식으로 프롬프트를 표시합니다
  • .

  • if [[ "${repo}" =~ ^github ]]
  • ${repo}github로 시작하면 gh 을 사용하여 리포지토리
  • 를 복제합니다.

  • if [[ "${repo}" =~ ^gitlab ]]
  • ${repo}gitlab로 시작하면 glab 을 사용하여 리포지토리
  • 를 복제합니다.

  • 그렇지 않으면 ${repo}https://로 시작한다고 가정합니다.
  • tmux new-window -c "${clone_path}" -n "${clone_path}" vim .
  • 새 tmux 창을 시작하고 작업 디렉토리를 새로 복제된 저장소로 설정하고 실행합니다vim ..


  • 보너스



    이 함수를 git 하위 명령인 것처럼 호출할 수 있도록 git 별칭을 만들 수 있습니다.

    다음을 실행하면 됩니다.

    $ git config --global alias.clone-tmux '!/usr/bin/env bash -ic git-clone-tmux'
    


    또는 git 구성 파일에 다음을 추가합니다.

    [alias]
        clone-tmux = !/usr/bin/env bash -ic git-clone-tmux
    


    이제 대화식 프롬프트를 위해 git clone-tmux <repo> <dir> 또는 git clone-tmux를 실행할 수 있습니다.

    추가 보너스: 쉘 탭 완성은 git 별칭에서도 작동합니다!

    요약



    이것은 결코 가장 우아한 스크립트는 아니지만 저에게 필요한 것입니다.

    이 기사를 재미있게 읽으셨기를 바랍니다. 이 기사가 워크플로와 생산성을 합리화하고 개선하는 방법을 찾는 데 영감을 주기를 바랍니다.

    더 많은 git 별칭을 보려면 내 .config/git/config dotfile을 확인하세요.

    더 많은 bash 기능을 보려면 내 .functions dotfile을 확인하십시오.

    즐거운 해킹!

    좋은 웹페이지 즐겨찾기