github의 두 분기 간 단일 파일에 대한 디프를 생성하려면 어떻게 해야 합니까?
하나의 파일에 대해 diff를 생성하여 두 버전 간의 차이를 표시해야 합니다. 이 두 버전은 실제로 github의 태그입니다.그런 다음 이메일을 통해 이 디프를 누군가에게 보내고 싶기 때문에 디프를 위한 github URL이 이상적입니다.Github 비교 보기를 사용하면 변경된 모든 파일에 대해 이 작업을 수행할 수 있지만, 내 보고서에 수천 개의 파일이 있기 때문에 좋지 않습니다.
다음과 같이 명령줄에서 이 작업을 수행할 수 있지만, 전자 메일을 통해 다른 사용자에게 diff를 보내야 하기 때문에 도움이 되지 않습니다.
git diff tag1 tag2 -- path/to/file
여기서 설명한 명령줄 버전을 찾았습니다. 로컬 분기와 원격 분기 간의 지정된 파일의 차이점을 확인하려면 어떻게 해야 합니까?
GitHub은 두 커밋 간의 차이를 보여주는 방법만 공개합니다.
이러한 태그가 실제로 커밋을 가리킨다면 Url 형식은 다음과 같습니다.
https://github.com/{user}/{repository}/compare/{from-tag}...{until-tag}
예를 들어, https://github.com/libgit2/libgit2sharp/compare/v0.9.0 ...v0.9.5는 LibGit2Sharp 프로젝트의 두 버전 간의 차이를 보여줍니다.이 diff에는 수정된 모든 파일이 포함됩니다.
특정 파일을 대상으로 하는 URL을 검색하려면 다음을 수행합니다.
- 변경된 파일 탭으로 전환

- Show Diff Stats 버튼을 클릭합니다(수정된 파일 목록이 링크로 표시됩니다).

- 클립보드에 원하는 특정 파일의 링크 복사...그리고 타다!모든 작업이 완료됩니다.
예를 들어, 위의 diff를 고려할 때, https://github.com/libgit2/libgit2sharp/compare/v0.9.0 ...v0.9.5#diff-11 링크는 다음을 가리킵니다.LazyFixtures.cs버전 v0.9.0과 v0.9.5 사이에 발생한 변경 사항입니다.
갱신하다
웹 인터페이스를 통해 디프를 렌더링하기에는 너무 크다는 귀하의 의견에 따라 이전 명령줄 툴링으로 되돌리는 것은 어떻습니까?diff 출력을 파일로 리디렉션한 다음 파일을 전자 메일 첨부 파일로 보낼 수 있습니다.
$ git diff v0.9.0 v0.9.5 -- LibGit2Sharp.Tests/LazyFixture.cs > /tmp/lazyfixture.diff
다음 문제가 적용될 때의 해결 방법은 다음과 같습니다.
이 비교는 큽니다!최근 250건의 커밋만 보여주고 있습니다.
비교할 파일의 원시 보기를 https://gist.github.com/ 에 복사합니다.비교할 두 개의 특정 커밋 지점을 사용합니다.이전 커밋부터 시작합니다.
https://gist.github.com/ 은 '개정판'을 클릭하면 나란히 보기가 멋집니다.
GitHub 웹 페이지에서 파일의 코드 변경 내역/리비전만 확인(다운로드하지 않음)하려는 사용자:
GitHub의 해당 파일로 이동한 다음 History를 선택합니다.이렇게 하면 아래와 같은 커밋 링크 목록이 있는 페이지가 열립니다.
클릭하면 코드 변경 내용이 표시됩니다.기록을 클릭한 후 패키지를 클릭하면 패키지 수준의 모든 파일 커밋을 확인할 수 있습니다.
Eclipse에서는 EGit 플러그인과 파일의 "오른쪽 클릭 -> 비교"를 사용하여 기록을 비교할 수 있습니다.Eclipse에서 두 개의 수정본을 비교하려면 어떻게 해야 합니까?
이것은 여전히 불가능하기 때문에 브라우저 기반의 diff-tool 방법이 있습니다.자동화 기능을 활용하지 않고 Chrome 확장 기능만 설치하면 됩니다.
- 크롬 브라우저용 Diff Tools 설치: https://chrome.google.com/webstore/detail/diff-tools-text-pdf-doc-o/lkcdojpmjehlniamnglpjlldkoonlomb
- Diff 도구 열기( http://iblogbox.com/devtools/diff/ )
- GitHub에서 BEFILE 커밋, 태그 또는 분기로 이동하여 파일을 연 다음 버튼을 클릭하여 원시 파일 보기, 모두 선택 및 복사를 한 다음 Diff Tools에서 왼쪽 텍스트 상자에 넣습니다.
- AFTER 파일에 대해 3단계를 반복하고 Diff Tools의 오른쪽 상자에 붙여넣기
- 클릭하여 임시 작업을 수행합니다.
나는 nulltoken의 답변을 사용하여 GitHub에 대한 두 커밋 간의 차이를 명령줄에서 끌어내기 위한 간단한 편의 스크립트를 작성했습니다.
전체 스크립트는 여기에서 찾을 수 있지만, 좋은 부분은 다음과 같습니다.
# Parse the following patterns for repo urls to get the github repo url
# https://github.com/owner/repo-name.git
# git@github.com:owner/repo-name.git
BASE_URL="https://github.com/""$(git config --get remote.origin.url | sed 's/.*github\.com[/:]\(.*\).git/\1/')""/compare"
if [[ "$#" -eq 1 ]]; then
if [[ "$1" =~ .*\.\..* ]]; then
# Handle "git hubdiff fromcommit..tocommit"
open "${BASE_URL}/$(git rev-parse "${1/\.\.*/}")...$(git rev-parse ${1/*\.\./})"
else
# Handle "git hubdiff fromcommit"
open "${BASE_URL}/$(git rev-parse "$1")...$(git rev-parse HEAD)"
fi
elif [[ "$#" -eq 2 ]]; then
# Handle "git hubdiff fromcommit tocommit"
open "${BASE_URL}/$(git rev-parse "$1")...$(git rev-parse "$2")"
fi
인수 분기, 커밋 및 기타 해결할 수 있는 모든 항목을 수락합니다.git rev-parse사용한open웹 페이지를 열기 위해 macOS에서만 작동하기 때문에 다른 환경에 있다면 수정하고 싶을 것입니다.
nulltoken의 응답과 마찬가지로 diff의 단일 파일을 가리키려면 파일의 제목을 클릭하여 URL 표시줄에 앵커 문자열이 나타나도록 해야 하며 이를 복사할 수 있습니다.
언급URL : https://stackoverflow.com/questions/14500240/how-can-i-generate-a-diff-for-a-single-file-between-two-branches-in-github
'codememo' 카테고리의 다른 글
| PHPUunit: 여러 인수를 사용하여 여러 메서드 호출을 모의하려면 어떻게 해야 합니까? (0) | 2023.08.16 |
|---|---|
| Yii 2를 사용하여 Ajax 호출에서 잘못된 요청(#400)을 받는 중 (0) | 2023.08.16 |
| PHP CLI는 사용자로부터 입력을 받은 다음 변수에 덤프하는 것이 가능합니까? (0) | 2023.08.16 |
| mysql/messagadbrict_trans_table 모드입니다.활성화하기 전에 로그 (0) | 2023.08.16 |
| Swift의 UIAlert Controller에 TextField를 추가하는 방법 (0) | 2023.08.16 |
