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

Request: `git restore $commit $file` shouldn’t override uncommited changes

From
Robin Moussu <moussu.robin@pm.me>
Date
Apr 27, 2021, 17:37 UTC
Message-ID
<pYZzGPZTHnJjYBKrUAVGcso74I_xJgfzNpSwDN94fhYcDoOamp62-IFvxVrU056uw0txy3MTHYSwny_II0XY4trSY5_E25q7EXwhNHjy3VY=@pm.me>

Hello, That’s the first time I’m interacting with the git community, I’m not very familiar with the process. I hope I’m at the right place for a feature request.

Currently, I don’t think that it’s possible to get an error when copying the content of a file from another revision into your working tree if said file has uncommitted changes.
I recently discovered that `git restore` was introduced to make file manipulation less confusing than with `git checkout`. I know it was introduced a few years ago, I’m late to the party! I would have expected that the semantic of `git restore` or `git restore $file` would discard all uncommitted changes (you are restoring the file after all), while `git restore $commit $file` would copy the content of said file from another revision only if your don’t have uncommitted changes or to get an error. If it was really what I wanted to do, I would have expected to either do `git restore $file && git restore $commit $file`, directly `git restore --force $commit $file` or something similar.
Is my expectation wrong? Would it be worth considering adding an option in `.gitconfig` to have such behavior?

Sincerely, Robin.

Next: Johannes Altmanninger
Message 1 of 5 in “Request: `git restore $commit $file` shouldn’t override uncommited changes”
  1. Robin MoussuApr 27, 2021
  2. Johannes AltmanningerApr 27, 2021
  3. Robin MoussuApr 28, 2021
  4. Junio C HamanoApr 28, 2021
  5. Junio C HamanoApr 28, 2021

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.