git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Bug: Merge commit lost during interactive rebase

From
VFValentina Finocchiaro <valentinafinocchiaro@gmail.com>
Date
Dec 18, 2019, 22:04 UTC
Message-ID
<CA+Kr=1i09cw6o8J==psMiVEk8LaDr7nf2C-b85=TX4z=rV1oQg@mail.gmail.com>
Hi,
this is to report a bug found during interactive rebase.
Bug description
Scenario:
- New commit on top of a Merge Commit.
- Dropping last commit during interactive rebase.
- Merge Commit is lost in history
Steps to reproduce this bug with “git version 2.18.1” on Centos8:

[root@a86e2b632fc2 git-bug-rebase]# git --version git version 2.18.1

# Creating git repo

[root@a86e2b632fc2 /]# mkdir git-bug-rebase [root@a86e2b632fc2 /]# cd git-bug-rebase/ [root@a86e2b632fc2 git-bug-rebase]# git init Initialized empty Git repository in /git-bug-rebase/.git/

# Adding stuff on master branch and first commit
[root@a86e2b632fc2 git-bug-rebase]# touch file1
[root@a86e2b632fc2 git-bug-rebase]# git add .
[root@a86e2b632fc2 git-bug-rebase]# git commit -m "first commit"
[master (root-commit) 39f2f9b] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file1
[root@a86e2b632fc2 git-bug-rebase]# git log
commit 39f2f9b13feb0c1a4b6173cf179b45576fca9b96 (HEAD -> master)
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:49:21 2019 +0000
    first commit
[root@a86e2b632fc2 git-bug-rebase]# git branch
* master
# Creating another branch: branch2, checkout on it and commit changes
[root@a86e2b632fc2 git-bug-rebase]# git branch branch2
[root@a86e2b632fc2 git-bug-rebase]# git branch
  branch2
* master
[root@a86e2b632fc2 git-bug-rebase]# git checkout branch2
Switched to branch 'branch2'
[root@a86e2b632fc2 git-bug-rebase]# touch file-branch-2
[root@a86e2b632fc2 git-bug-rebase]# git add .
[root@a86e2b632fc2 git-bug-rebase]# git commit -m "commit on branch2"
[branch2 786f836] commit on branch2
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file-branch-2
# Checkout on master and commit something else
[root@a86e2b632fc2 git-bug-rebase]# git checkout master
Switched to branch 'master'
[root@a86e2b632fc2 git-bug-rebase]# touch file3
[root@a86e2b632fc2 git-bug-rebase]# git add .
[root@a86e2b632fc2 git-bug-rebase]# git commit -m "commit on master"
[master e3a957d] commit on master
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file3
[root@a86e2b632fc2 git-bug-rebase]# git log
commit e3a957d99401101b9e2805c2b59459123b2c1883 (HEAD -> master)
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:52:54 2019 +0000
    commit on master
commit 39f2f9b13feb0c1a4b6173cf179b45576fca9b96
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:49:21 2019 +0000
    first commit
# Merge two branches:
[root@a86e2b632fc2 git-bug-rebase]# git merge branch2
Merge made by the 'recursive' strategy.
 file-branch-2 | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file-branch-2
[root@a86e2b632fc2 git-bug-rebase]# git log
commit 9329daf43321d1b797652abf87106134ca516929 (HEAD -> master)
Merge: e3a957d 786f836
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:53:03 2019 +0000
    Merge branch 'branch2'
commit e3a957d99401101b9e2805c2b59459123b2c1883
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:52:54 2019 +0000
    commit on master
commit 786f836d941c101cb952aa008d10246cb0638e46 (branch2)
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:50:30 2019 +0000
    commit on branch2
commit 39f2f9b13feb0c1a4b6173cf179b45576fca9b96
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:49:21 2019 +0000
    first commit
# Commit something after merge commit:
[root@a86e2b632fc2 git-bug-rebase]# touch file-after-merge
[root@a86e2b632fc2 git-bug-rebase]# git add .
[root@a86e2b632fc2 git-bug-rebase]# git commit -m "commit after merge"
[master 1f33710] commit after merge
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file-after-merge
[root@a86e2b632fc2 git-bug-rebase]# git log
commit 1f33710d6f011bb123cd947f82a004812b71f804 (HEAD -> master)
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:53:43 2019 +0000
    commit after merge
commit 9329daf43321d1b797652abf87106134ca516929
Merge: e3a957d 786f836
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:53:03 2019 +0000
    Merge branch 'branch2'
commit e3a957d99401101b9e2805c2b59459123b2c1883
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:52:54 2019 +0000
    commit on master
commit 786f836d941c101cb952aa008d10246cb0638e46 (branch2)
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:50:30 2019 +0000
    commit on branch2
commit 39f2f9b13feb0c1a4b6173cf179b45576fca9b96
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:49:21 2019 +0000
    first commit

# Delete last commit through interactive rebase (merge commit is not shown on list):

[root@a86e2b632fc2 git-bug-rebase]# git rebase -i HEAD~3 Successfully rebased and updated refs/heads/master. [root@a86e2b632fc2 git-bug-rebase]# git status On branch master nothing to commit, working tree clean

# Merge commit is lost:
[root@a86e2b632fc2 git-bug-rebase]# git log
commit 82a34e8b224d8fa9434cc484ed153b519ffa32a5 (HEAD -> master)
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:50:30 2019 +0000
    commit on branch2
commit e3a957d99401101b9e2805c2b59459123b2c1883
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:52:54 2019 +0000
    commit on master
commit 39f2f9b13feb0c1a4b6173cf179b45576fca9b96
Author: root <valentina.finocchiaro@gmail.com>
Date:   Wed Dec 18 09:49:21 2019 +0000
    first commit

Thanks and Best Regards, Valentina

Next: Thomas Braun
Message 1 of 2 in “Bug: Merge commit lost during interactive rebase”
  1. Valentina FinocchiaroDec 18, 2019
  2. Thomas BraunDec 19, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.