Bug Report or Unexpected Feature when "git restore -m ." restores merge conflicted state of a file after a commit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



What did you do before the bug happened? (Steps to reproduce your issue)

Can be replicated on a new repository.

1. Initialize git repo.
    git init
2. Create a file
    touch test-file
3. Write to the file
    "update 1"
4. Stage the changes to the file, create a commit.
    git add .
    git commit -m "update 1"
5. Copy the branch
    git branch -c "main-copy"
6. Write to the file on the same first "main" branch by appending new
content on the second line of the "test-file"
    "update 2"
   The file looks like:
    "update 1"
    "update 2"
7. Stage and commit.
    git commit -a -m "update 2"
8. Introduce another change to the file but keep it on the work-space
by appending another line
    "update 3"
   The file looks like:
    "update 1"
    "update 2"
    "update 3"
9. Make a merge switch
    git switch --merge main-copy
   The file on the "main-copy" branch should look like:
     "update 1"
     "<<<<<<< main-copy"
     "======="
     "update 2"
     "update 3"
     ">>>>>>> local"
10. Stage and commit file
    git commit -a -m "merge conflict on main-copy"
11. Restore merge-conflicted state
    git restore -m .

What did you expect to happen? (Expected behavior)
The "git restore -m ." is not supposed to restore the merge-conflicted
state of the file after it was staged and committed

What happened instead? (Actual behavior)
The "git restore -m ." restored the merge-conflicted state of the file
after it was staged and committed

What's different between what you expected and what actually happened?
The restoration of the merge-conflicted state of the file after it was
staged and committed

Anything else you want to add:
I am not sure whether it is a bug or a feature but the behavior seemed
unexpected and I couldn't find any mentions of it.

[System Info]
git version:
git version 2.34.1
cpu: x86_64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
uname: Linux 6.8.0-57-generic #59~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC
Wed Mar 19 17:07:41 UTC 2 x86_64
compiler info: gnuc: 11.4
libc info: glibc: 2.35
$SHELL (typically, interactive shell): /bin/bash


[Enabled Hooks]
not run from a git repository - no hooks to show




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux