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

Re: Suggestion: make git checkout safer

From
EAEd Avis <eda@waniasset.com>
Date
Jun 5, 2015, 18:46 UTC
Message-ID
<loom.20150605T203544-871@post.gmane.org>
In-Reply-To
<xmqqd21arq0n.fsf@gitster.dls.corp.google.com>

I'm not attached to the wording changes posted earlier. As I said, it is only a starting point.

I do feel that 'git checkout PATH' is rather a dangerous operation, and moreover a surprisingly dangerous one, since 'git checkout BRANCH' is careful not to lose local changes, as are other common commands like 'git pull'. In the documentation patch I tried to highlight the distinction between the two rather different, and perhaps even Jekyll-and-Hyde-like, modes of this command.

But rather than adding heavyhanded and redundant warnings to the documentation it would be better for the command not to be quite so sharp-edged. There is already a --force option for one mode, which could easily be made to apply to the other too (so local changes will not be discarded unless --force is given). Is the only argument against it that 'git checkout is intended to overwrite changes'? That seems a little circular since the question is whether its intended behaviour could change to something a little safer. Surely a sensible Huffman-coding of git commands would give longer and harder-to-type names like 'git checkout --force .' to relatively dangerous operations?

Or indeed, split out the two different modes into two separate commands. The job of reverting file contents seems like something for 'git clean'.

I've said all I have to say but I would like to ask, in the hope of becoming a better git user: if 'git checkout .' is not a safe way to restore missing files in the working tree, what is the recommended way to do that?

Thanks all for your comments and guidance.
-- 
Ed Avis <eda@waniasset.com>
Previous: Junio C HamanoNext: Eric Sunshine
Message 21 of 28 in “Suggestion: make git checkout safer”
  1. Ed AvisJun 3, 2015
  2. Jeff KingJun 3, 2015
  3. Ed AvisJun 3, 2015
  4. Jeff KingJun 3, 2015
  5. Ed AvisJun 3, 2015
  6. Junio C HamanoJun 3, 2015
  7. Randall S. BeckerJun 3, 2015
  8. Junio C HamanoJun 3, 2015
  9. Randall S. BeckerJun 3, 2015
  10. Stefan BellerJun 3, 2015
  11. Ed AvisJun 4, 2015
  12. Ed AvisJun 4, 2015
  13. Torsten BögershausenJun 3, 2015
  14. Kevin DaudtJun 3, 2015
  15. Ed AvisJun 4, 2015
  16. Torsten BögershausenJun 4, 2015
  17. Ed AvisJun 5, 2015
  18. Duy NguyenJun 5, 2015
  19. Eric SunshineJun 5, 2015
  20. Junio C HamanoJun 5, 2015
  21. Ed AvisJun 5, 2015
  22. Eric SunshineJun 5, 2015
  23. Philip OakleyJun 3, 2015
  24. Junio C HamanoJun 3, 2015
  25. Jeff KingJun 3, 2015
  26. Randall S. BeckerJun 3, 2015
  27. Junio C HamanoJun 3, 2015
  28. John SzakmeisterJun 4, 2015

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.