試した環境
- 2023/06/04時点のgitlab.com (多分 16.0.1)
- git version 2.41.0.windows.1
本題
以下のように2つのブランチを用意します。
1つはもう一つのブランチを squash merge します。
$
$ git switch main
$ git merge --squash develop
$ git log --oneline --graph --all
* 0209881 (HEAD -> main, origin/main, origin/HEAD) Squashed commit of the following:
| * aaf2826 (origin/develop) edit 2
| * de5eb78 edit 1
| * 132257d add file
|/
* 3361c61 Initial commit
この2つのブランチをダブルドットのgit diff
をしても差分はありません。
$ git diff main..develop
しかしこれら2つのブランチを GitLab のリポジトリにpushし Compare revisions で確認すると差分が表示されます。
この差分の結果はダブルドットのgit diff
コマンドではなく、トリプルドットのgit diff
コマンドの結果に相当します。
$ git diff main...develop
diff --git a/compare-test.txt b/compare-test.txt
new file mode 100644
index 0000000..4f8d76e
--- /dev/null
+++ b/compare-test.txt
@@ -0,0 +1,2 @@
+edittext 1
+edittext 2
それの裏付けになるか分かりませんが、URLを見るとmain...develop
とトリプルドットになっています。
URLの左右とGitLabの画面の左右が逆になるのは注意が必要です。
https://gitlab.com/[groupname]/[projectname]/-/compare/main...develop?from_project_id=XXXXXXXX&straight=false
ちなみにURLの最後のstraight=false
をstraight=true
にすると差分が出なくなります。
コミットの表示はダブルドットのgit log
コマンドの結果に近いです。
コマンドの左右とGitLabの画面の左右が逆になるのは注意が必要です。
$ git log --oneline main..develop
aaf2826 (HEAD -> develop, origin/develop) edit 2
de5eb78 edit 1
132257d add file
参考
Git - リビジョンの選択