Bitbucketの2つのリビジョンを比較する方法は?


126

私のチームはgitリポジトリにBitbucketを使用しており、最近コードレビューにプルリクエスト機能の使用を開始しました。最初のレビューでは問題なく機能しますが、複数の反復を行う場合(つまり、変更が行われ、プルリクエストが更新される場合)、最後のコードレビュー以降に行われた新しい変更のみのリンクを表示します。

「比較」機能を調べましたが、UIはブランチ間でしか比較できないように見えます。2つのコミット間の差分を取得する簡単な方法はありますか?


回答:


99

これはすでに与えられた答えを少し変更しただけですが、#commitsの代わりに#diffを最後に追加するのが通常私が探しているものです。また、他の人が述べたように、私にとって最良の結果は通常、新しいコミットを最初に配置し、古いコミットを1秒後に配置することによって得られますが、それは特定のニーズによって異なります。

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

2
私は彼らがコミットのリビジョンを追跡するために直感的なGUIを追加してくれることを望みます(gerritに似ています)
dolbi

1
今日はこの答えを試したが成功しなかった。現在のバージョンのBitbucketでもまだ有効であることを誰かが確認できますか?
MartinStålberg2017年

Tortoisehgプロジェクトからの2つのコミットでこれを試したところ、まだ機能しているようです。リンクの例は次のとおり
Night Owl

1
よく働きました。を挿入しowner/repo、コミットリストからハッシュをコピーし、Enterキーを押し、BAMを押しました。素敵で簡単な差分ビュー。however(ただし、GUIでこれが明らかではない理由...)
Svish '18

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/上記を含めた後で何かを追加すると、デッドリンクエラーが発生します。
Juha Untinen、2018

bitbucket.org/site/master/issues/11657/…で言及されている他の構文と同じです。これは、一般的な404とその下のパスのみを提供します。
Juha Untinen、2018

25

Bitbucketはタグの比較をサポートしています。

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

1
これでページが表示されますが、TAGSの
違い

4
後世のために、それは機能しますが、tag1「v」で始まり、より新しいものでtag2ある必要があります。例えば、bitbucket.org/codsen/array-includes-with-glob/branches/compare/...どちらの場合は404につながる- -それは動作しません、他の方法の周りの意志ではない作品と「V」なし
revelt

これでうまくいきました。https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<TAG1>%0D<TAG2>?w=1#diffこれは差分を示し、空白の違いを無視します。
Damodar Bashyal

25

bitbucket.orgの比較ページのブランチ/タグドロップダウンの検索フィールドで、貼り付けられたコミットハッシュがサポートされるようになりました。

これでhttps://bitbucket.org/<owner>/<repo>/branches/compare/、URLハッキングの代わりに、ハッシュにアクセスしてドロップダウンに貼り付けることができます!

ドロップダウンして、コミットハッシュに貼り付けます


これは私にとってはうまくいきましたが、以前の回答のように、#commitsではなく#diffで終わるようにURLを編集する必要がありました。そうでない場合、変更は示されませんでした。
MikeA 2018年

@ brian.kengこれを正解としてマークできますか?
Ahmed Hasn。

10

Bitbucket Server、バージョン:v4.4.1を持っています

私の答えはこれでした。

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

私のプロジェクトではgitサブモジュールを使用しているため、この回答を探していました。プルリクエストでは、変更された各サブモジュールの古いcommit shaと新しいcommit shaしか表示されません。この差分ビューにジャンプするためのリンクや(私が知っている)何かへのリンクはありません。このURLを使用すると、サブモジュールの変更点も確認できます。

ところで、プルリクエスト中にサブモジュールの2つのコミットを比較するより良い方法を誰かが知っている場合は、私に知らせてください。


13
Bitbucket Server v4.9.0で私がこれを行うには、最初のコミットが表示されます。リビジョンを比較しません。
ジェフ

@Jeffあなたが<新>私はそれらを混同しているかもしれないが、もしそうなら、私は私の答えを修正するまで、<古い>切り替えてみました
サンティアゴarizti

1
はい、同じ問題です。実際、2016年11月(今月)の時点で、Atlassianはこの機能がBitbucket Serverではまだサポートされていないと述べています:jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550。それがあなたのシステムにあるとあなたが思っていることをやっていると確信していますか?
ジェフ

これは、各タグのコミットハッシュを取得することにより、タグのsudoで機能することがわかりました
tristanbailey

5

Bitbucket比較ビュー形式は次のとおりです。

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

例を挙げますged/ruby-pg(Rubyライブラリ、RubyGem):

2つのリリース(v0.18.1からv0.18.2へ)を比較するには

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

2つのリビジョンを比較するには(f97dd6cから22a3612まで)

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




0

比較するコミットにライトタグを作成します。git -a [タグ名] [commit_sha]

次に、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

これは、2つの連続するバージョン(n&n-1、n-1&n-2など)を比較して、最新の5つのリビジョンを示しています。

これは、2つの特定のバージョン間の直接的な違いを示すのに理想的ではないことを理解しています。

参照 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

ビットバケットは..ので、CMDラインが唯一の方法である、これらの機能を持っていません
シッダールタ

これが私が最も役に立った答えでした。質問はbitbucketを述べており、この回答はbitbucketでうまく機能するソリューションを他のgitソリューションと同様に提供することに同意しました。
ptsw
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.