Github에서 git diff를 여는 쉘 별칭
5190 단어 shellgithubproductivitygit
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에서
zsh
및 bash
셸에 별칭을 추가하는 방법을 살펴보겠습니다.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를 조정했습니다.
쉘 별칭 추가
이제 명령이 있으므로 별칭을 추가하겠습니다.
bash
및 zsh
모두 동일하며 셸 구성 파일만 다릅니다.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에서 최신 업데이트를 확인할 수 있습니다.
Reference
이 문제에 관하여(Github에서 git diff를 여는 쉘 별칭), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maxivanov/shell-alias-to-open-git-diffs-in-github-443i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)