CLI에서 GitHub pull 요청 작성 방법

최초 내 것 blog
만약 당신이 나처럼 하루 동안 많은 pull 요청을 만들었고 GitHub를 반복해서 방문하여 PR을 만들려는 생각에 화가 났다. - 내 뜻을 오해하지 마라. 이 사이트는 매우 훌륭하지만, 때때로 CLI를 떠나서 브라우저를 열어야 한다. (이것은 당신의 업무 효율에 심각한 영향을 미친다) 화가 난다.
좋은 해결 방안이 있습니다. GitHub에는 멋진 도구가 있습니다. CLI를 통해 PR과 다른 것을 만들 수 있고 구조에 따라 설치할 수 있습니다.
참고 GitHub 사용자는 로그인 세부 정보를 저장하지 않는다고 합니다.

수레바퀴를 설치하다


Hub is available on GitHub, 따라서 바이너리 파일을 다운로드하거나 원본 코드에서 설치할 수 있습니다.불행히도 Ubuntu 를 사용하면 쉽게 얻을 수 없습니다. 바이너리 파일을 다운로드해서 설치해야 합니다.
본고에서 나는 설치와 사용을 상세하게 소개할 것이다.
참고: git version: 1.9.1debian 7.9

설치 프로그램


설치가 간단합니다. 다음을 참조하십시오.
# Linux x64
cd /tmp
wget https://github.com/github/hub/releases/download/v2.6.0/hub-linux-amd64-2.6.0.tgz -O - | tar -zxf -
sudo prefix=/usr/local hub-linux-amd64-2.6.0/install && rm -rf hub-linux-amd64-2.6.0
# See: https://github.com/github/hub#aliasing
echo "alias git=hub" >> ~/.bashrc
source ~/.bashrc

활용단어참조


설치가 완료되면 Git+Hub를 사용할 수 있습니다.
cli에서 man hub 을 누르면 비슷한 내용을 볼 수 있습니다.

테스트


다음 그림에서 나는 이 도구가 100% 작동할 수 있다고 확신한다.

기교



Git Alias와 통합됩니다.


그 이후로 나의 손은 줄곧 키보드 위에 놓여 있어서 대량의 시간hub을 절약하였는데, 이것은 값을 매길 수 없는 것이다.이것은 위대한 생각으로 홍보를 추진하고 창조하는 자동이 될 것이다. - 이것이 바로 별명이다.
나는 Git 별명을 매우 좋아하기 때문에 create-pr라는 별명을 만들어서 전송하고 GitHub에 드래그 요청을 만들기로 했다.
명령줄에서 직접 별명을 만들 수 있습니다.global.gitconfig을 열어 편집하려면 다음을 클릭하십시오.
git config --global --edit
선택 편집기가 팝업되고 편집할 수 있습니다 .gitconfig.[alias] 부분을 찾고 [alias] 아래의 함수를 복사합니다.
[alias]

    create-pr="!f() { \
        BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD); \
        git push -u origin "${BRANCH_NAME}"; \
        hub pull-request --no-edit; \
        };f"
이 별명은 약간 복잡한 스크립트 형식으로 함수를 만들고 즉시 실행합니다.이 함수에서 우리는 세 가지 일을 한다.
  • BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD);
  • git에서 현재 지점의 이름을 가져와 변수branch\uname에 저장합니다.
  • git push -u origin "${BRANCH_NAME}";
  • 현재 지점을 원격 원점으로 밀어넣고 같은 이름의 원격 지점과 연결
  • hub pull-request --no-edit
  • 허브를 사용하여 드래그 요청을 작성하고 브랜치에서 처음 제출한 메시지를 드래그 요청 제목과 설명으로 사용하며 텍스트 편집기를 열 필요가 없습니다
  • 별칭을 사용하려면 PR을 만들고 실행할 지점을 확인하십시오.
    git create-pr
    
    이것은 필요할 때 지점을 전송하고 pull 요청을 작성합니다. 이것은 완전한 과정입니다. (PR 제목은 마지막 제출 메시지가 될 것입니다.)
    주의: 만약에 Git 별명에 대한 더 많은 정보를 알고 싶다면, Phil Haack를 통해 이 글을 읽는 것을 권장합니다.

    Bash 함수


    저는 개인적으로 더 쉽게 접근할 수 있도록 제 ~/.bash_functions 에 유용한 도구를 놓는 것을 좋아합니다. 만약 .bashrc 파일이 없다면, 아래의 코드를 복사해서 당신의 .bash_functions 에 놓을 수 있습니다.
    mkpr() {
        BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD);
        git push -u origin "${BRANCH_NAME}" || true;
        hub pull-request --no-edit || true;
        }
    
    나처럼 효율적으로 일하는 것을 좋아한다면 .bashrc 에 다음 함수를 추가할 수도 있다.
    function commiter() {
        # Add file, commit and push
        if [ $# -eq 0 ]; then
            # Ensure that file is supplied else exits
            echo "No file supplied"
            exit 1
        fi
    
        git add -f "$1";
        if [ "$2" == "" ]; then
            git commit -nm"Updated $1";
        else
            git commit -nm"$2";
        fi;
        bash -c "git push -q &"
        }
    
    상기 함수commiter는 세 가지 작용을 한다.
  • git add -f "$1" ;
  • 이 명령은 작업 트리의 현재 내용을 사용하여 색인을 업데이트하여 등급별 내용을 준비합니다.
    다음 제출에 사용됩니다.
  • git commit -nm"$2" ;
  • 색인의 현재 내용을 새 제출에 저장하고 사용자의 설명message가 제공되지 않으면 Updated <filename> 을 제출 메시지로 사용합니다.
  • bash -c "git push -q &" ;
  • 백그라운드에서 로컬 참조를 몰래 사용하여 원격 참조를 업데이트합니다.
  • 활용단어참조


    다음 명령을 사용하여 내 파일 main.py 을 제출하고 브라우저를 열지 않고 드래그 요청을 전송하고 만듭니다.
    commiter main.py && mkpr
    

    결론


    HubGit를 둘러싼 전개는 내가 매일 몇 번씩 하는 일을 간소화하는 아주 좋은 도구이다.GitHub에서 보고 즐길 수 있습니다.

    좋은 웹페이지 즐겨찾기