Bitbucket에서 두 개정판을 비교하는 방법은 무엇입니까?


126

우리 팀은 git 저장소에 Bitbucket을 사용하고 있으며 최근 코드 검토에 풀 요청 기능을 사용하기 시작했습니다. 첫 번째 검토에서는 제대로 작동하지만 여러 번 반복하면 (즉, 변경 사항이 적용되고 풀 요청이 업데이트 됨) 마지막 코드 검토 이후에 변경된 새로운 내용과의 링크가 표시됩니다.

"비교"기능을 살펴 보았지만 UI는 분기 간 비교 만 가능한 것처럼 보입니다. 두 커밋간에 차이점을 얻는 간단한 방법이 있습니까?


풀 요청 또는 커밋 수준 검토 작업에 대한 소개 bitbuckt 4.8의 새로운 기능
surfmuggle

답변:


99

이것은 이미 주어진 답변에 약간의 수정이지만 #commits 대신 #diff를 추가하면 일반적으로 내가 찾는 것입니다. 또한 다른 사람들이 언급했듯이 가장 좋은 결과는 일반적으로 최신 커밋을 먼저하고 더 오래 1 초를 배치하면 얻을 수 있지만 특정 요구 사항에 따라 다릅니다.

https://bitbucket.org/<OWNER>/<REPO>/branches/compare/<commit-hash>..<commit-hash-older>#diff

2
커밋 개정을 추적하기 위해 직관적 인 GUI를 추가하고 싶습니다 (
gerrit

1
오늘이 답변을 성공하지 못했습니다. 누구나 현재 버전의 Bitbucket에서 여전히 유효한지 확인할 수 있습니까?
Martin Stålberg

방금 tortoisehg 프로젝트에서 두 개의 커밋으로 시도했지만 여전히 작동합니다. 여기에 링크 예가 있습니다 : bitbucket.org/tortoisehg/thg/branches/compare/…
Night Owl

1
잘 했어. 을 삽입하고 owner/repo커밋 목록에서 해시를 복사하고 Enter 키와 bam을 누르십시오. 좋고 쉬운 diff 전망. 👍 (GUI에서 이것이 분명하지 않은 이유는 ...)
Svish

1
@NightOwl-Stash / bitbucket 서버를 사용하고 있습니까? 그렇다면 bitbucket.org에서만 작동합니다 -jira.atlassian.com/browse/BSERV-2550
Cinderhaze

25

다음과 같은 것을 시도하십시오 :

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<commit1>..<commit2>#commits

출처 : https://bitbucket.org/site/master/issue/4779/ability-to-diff-between-any-two-commits


1
버전 4.14에서는 작동하지 않습니다. compare/위 내용 을 포함시킨 후 추가하면 Dead Link 오류가 발생합니다 .
Juha Untinen

bitbucket.org/site/master/issues/11657/…에 언급 된 다른 구문과 동일합니다.이 구문 은 일반적인 404와 그 아래 경로 만 제공합니다.
Juha Untinen

25

Bitbucket은 이제 태그 비교를 지원합니다.

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<tag1>%0D<tag2>

1
이것은 나에게 페이지를 제공하지만 TAGS 사이에 차이를 보이지 않습니다. 이것은 내가 찾고있는 것입니다.
tristanbailey

4
후손의 경우 작동하지만 tag1"v"로 시작하고 최신이어야합니다 tag2. 예를 들어, bitbucket.org/codsen/array-includes-with-glob/branches/compare/… — 다른 방법으로는 작동하지 않고 "v"가 없으면 작동하지 않습니다. 두 경우 모두 404가됩니다.
revelt

그 트릭을했다. https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<TAG1>%0D<TAG2>?w=1#diff이것은 diff를 표시하고 공백 차이를 무시합니다.
Damodar Bashyal

25

bitbucket.org의 비교 페이지에있는 분기 / 태그 드롭 다운의 검색 필드는 이제 붙여 넣은 커밋 해시를 지원합니다.

이제 https://bitbucket.org/<owner>/<repo>/branches/compare/URL 해킹 대신 해시를 드롭 다운에 붙여 넣을 수 있습니다 .

드롭 다운 한 다음 커밋 해시에 붙여 넣기


이것은 나를 위해 일했지만 이전 답변에 따라 # 커밋 대신 #diff로 끝나도록 URL을 편집해야했습니다. 그렇지 않으면 아무런 변화가 없었습니다.
MikeA

@ brian.keng 이것을 정답으로 표시 할 수 있습니까?
Ahmed Hasn.

10

Bitbucket Server, version : v4.4.1이 있습니다.

나와 함께 대답은 이것이었다.

http://<path-to-my-server>/projects/<project-name>/repos/<repo-name>/commits/<old>?to=<new>

내 프로젝트에서 git 하위 모듈을 사용하기 때문에이 답변을 찾고 있었고 풀 요청에서는 이전 커밋 샤와 변경된 각 서브 모듈의 새 커밋 샤만 볼 수 있습니다. 이 diff보기로 이동하기 위해 클릭하거나 내가 아는 것에는 링크가 없습니다. 이 URL을 사용하면 하위 모듈에서 변경된 내용을 볼 수 있습니다.

Btw, 풀 요청 중에 하위 모듈에서 두 커밋을 비교하는 더 나은 방법을 알고 있다면 알려주십시오.


13
Bitbucket Server v4.9.0 에서이 모든 것이 첫 번째 커밋을 보여줍니다. 개정판을 비교하지 않습니다.
Jeff

@Jeff는 전환하려고 한 <세>에 <새> 그렇다면, 내 대답은 수정한다면 나는 그들을 혼합 수도
산티아고 arizti

1
예, 같은 문제입니다. 사실 11 월 (2016) (이번 달)의로, 골드 피처는이 기능의 Bitbucket 서버에서 아직 지원되지 않는다는 것을 말하고있다 : jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550를 . 시스템에서 생각한대로 수행하고 있습니까?
Jeff

나는 태그를 들어, 각 태그에 대한 해시 커밋 복용하여 sudo를위한 작업이 발견
tristanbailey

5

Bitbucket 비교보기 형식은 다음과 같습니다.

https://bitbucket.org/<owner>/<repo>/branches/compare/<new>%0D<old>

예를 들어 ged/ruby-pg(루비 라이브러리 인 RubyGem) :

두 릴리스를 비교하려면 (v0.18.1에서 v0.18.2로)

https://bitbucket.org/ged/ruby-pg/branches/compare/v0.18.2%0Dv0.18.1

두 개정판을 비교하려면 (f97dd6c에서 22a3612로)

https://bitbucket.org/ged/ruby-pg/branches/compare/22a361201fd1d387d59a066b179124694a446f38%0Df97dd6cb4f34da6a62c4339887249115c7c25b9c




0

비교하려는 커밋에 라이트 태그를 만듭니다. git -a [tagname] [커밋 _ 샤]

그런 다음 Bitbucket의 비교 메뉴 (풀 요청을 수행하는 메뉴)에서 단순히 태그와 비교하십시오.


0

또한 풀 요청 내에서이 작업을 수행 할 수 있습니다. 예를 들어 누군가가 지사에 푸시 한 후 검토 결과를 수정하면됩니다. 내 지식으로는 아직 UI가 없지만 다음과 같이 URL을 입력 할 수 있습니다.

https://<bitbucket-server>/projects/<PROJECT>/repos/<REPO>/pull-requests/<PR-NUM>/<commit-hash>?since=<commit-hash-older>


0

명령 프롬프트에서

git log -p -1

이전 버전과의 비교를 보여줍니다.

git log -p -5

이것은 두 개의 연속 버전 (n & n-1, n-1 & n-2 등)을 비교하여 마지막 5 개의 개정판을 보여줍니다.

나는 이것이 두 특정 버전 사이의 직접적인 차이점을 보여주는 것은 이상적이지 않다는 것을 알고 있습니다.

참조 https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History


-4

터미널을 통해 프로젝트 경로에서 git을 실행하십시오.

git diff <new commit> <old commit>

전의: git diff 26cf60f be5f978


2
이것은 커맨드 라인에서 git과 사물을 비교하는 방법입니다. 문제는 웹 사이트에서 Bitbucket에서 수행하는 방법이었습니다. :)
Mark VY

bitbucket에는 이러한 기능이 없습니다. 따라서 cmd 라인이 유일한 방법입니다.
Siddharth

이것이 내가 가장 유용한 답이었습니다. bitbucket이라는 질문에 동의 하고이 답변은 bitbucket과 잘 작동하는 솔루션을 다른 자식 솔루션과 함께 제공합니다.
ptsw
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.