Github에서 git diff를 여는 쉘 별칭

컴퓨터에서 프로젝트의 코드를 보고 있으며 코드는 Github에서 호스팅됩니다. 몇 가지 시나리오를 상상해보십시오.
  • 모르는 가지를 우연히 발견했습니다. 이 분기가 기본main 분기와 어떻게 다른지 확인하려고 합니다.
  • 풀 요청을 하지 않고 분기를 main 분기로 병합하려고 합니다. 다시 한 번 병합하기 전에 변경 사항을 확인하려고 합니다.

  • 두 시나리오에 대한 답은 git diff 입니다.
    나는 당신에 대해 잘 모르겠지만 터미널에서 더 큰 diff (색상이있는 것까지)를 보는 것이 다소 번거 롭다는 것을 알았습니다.
    VSCode에 있는 것과 같은 GUI 도구가 있지만 올바른 화면으로 이동하고 관련 분기를 찾기 위해 메뉴를 클릭하는 데 시간이 걸리므로 결코 마음에 들지 않았습니다.

    diff를 볼 때 가장 좋은 점은 Github 비교 페이지입니다.



    친숙하고 체계적이며 유용합니다. 가능할 때마다 그곳에서 내 git diff를 보는 것을 선호합니다.
    비교 페이지로 이동하기 위해 URL을 만드는 것은 지루합니다.

    다음은 콘솔 별칭을 추가하여 Github diff 페이지를 열어 2개의 분기 또는 커밋 간의 변경 사항을 확인하는 방법에 대한 빠른 팁입니다.

    > ghcmp main my-feature-branch # opens a browser window with Github compare of "main" and "my-feature-branch"
    


    전제 조건



    별칭을 추가하려는 환경에 git만 설치하면 됩니다.

    참고: git 저장소가 있는 디렉토리에서 ghcmp 명령(또는 별칭 이름 지정)을 실행해야 저장소의 Github URL을 찾을 수 있습니다.

    Mac 및 Linux에서 zshbash 셸에 별칭을 추가하는 방법을 살펴보겠습니다.

    Github 비교 페이지



    페이지 URL 형식 비교:
    https://<REPO URL>/compare/<SOURCE BRANCH OR COMMIT>...<TARGET BRANCH OR COMMIT>.....(점 2개 및 3개)의 차이점에 유의하십시오.

    점 2개: TARGET에는 있지만 SOURCE에는 없는 모든 커밋과 SOURCE에는 있지만 TARGET에는 없는 커밋을 표시합니다.

    점 3개: TARGET에는 있지만 SOURCE에는 없는 모든 커밋을 표시합니다. 당신은 보통 이것을 원합니다.

    예를 들어 0.4-stable 저장소의 0.3-stable와 비교하여 react 분기에 추가된 항목을 확인하려면 다음을 수행하십시오.

    https://github.com/facebook/react/compare/0.3-stable...0.4-stable

    Github에서 diff를 여는 명령



    별칭 서명이 ghcmp [from branch-or-commit] [to branch-or-commit]라고 가정하면 셸 명령은 다음과 같습니다.

    맥:

    open "$(git config --get remote.origin.url | sed -E 's/:([^\/])/\/\1/g' | sed -e 's/git@/https:\/\//g' | sed -e 's/.git$//')/compare/$1...$2"
    


    리눅스:

    xdg-open "$(git config --get remote.origin.url | sed -E 's/:([^\/])/\/\1/g' | sed -e 's/git@/https:\/\//g' | sed -e 's/.git$//')/compare/$1...$2"
    


    궁금한 경우 분해된 명령:
    open 브라우저에서 다음 URL을 열고 Linux용 xdg-open으로 바꿉니다."$(git config --get remote.origin.url git 구성 파일에서 저장소의 URL을 가져옵니다.| sed -E 's/:([^\/])/\/\1/g' | sed -e 's/git@/https:\/\//g' | sed -e 's/.git$//') repo URL을 표준(https) 형식으로 변환/compare/$1...$2" 2개의 인수가 전달된 Github 비교 URL의 경로

    나는 이것 SO answer에서 sed를 조정했습니다.

    쉘 별칭 추가



    이제 명령이 있으므로 별칭을 추가하겠습니다. bashzsh 모두 동일하며 셸 구성 파일만 다릅니다.

    bash에서 ~/.bashrc 끝에 추가합니다. zsh에서 ~.zshrc 끝에 추가합니다.

    ghcmp() {
        open "$(git config --get remote.origin.url | sed -E 's/:([^\/])/\/\1/g' | sed -e 's/git@/https:\/\//g' | sed -e 's/.git$//')/compare/$1...$2"
    }
    


    ...



    그것은 일상적인 git 프로세스를 약간 단순화하기 위한 약간의 생산성 요령이었습니다.

    이러한 유형의 콘텐츠가 마음에 들면 Twitter에서 최신 업데이트를 확인할 수 있습니다.

    좋은 웹페이지 즐겨찾기