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

Re: git pull for update of netdev fails.

From
Linus Torvalds <torvalds@osdl.org>
Date
Sep 20, 2006, 16:26 UTC
Message-ID
<Pine.LNX.4.64.0609200920290.4388@g5.osdl.org>
In-Reply-To
<Pine.LNX.4.64.0609200915550.4388@g5.osdl.org>
On Wed, 20 Sep 2006, Linus Torvalds wrote:
Show 6 quoted lines
> 
> That's a really important point. You can trivially say "I don't care". 
> It's literally one extra character. But it should be the _user_ that says 
> so, not the SCM.
> 
> The whole point of the SCM is to care.
Btw, the "+" also protects you from local errors.

Let's say that you've committed some work of your own onto a branch that you happen to follow. Guess what? By default, git refuses to throw your hard work away.

This is not just a random thing. It is in fact one of the very core issues of having multiple people work together on the same remote repo. We don't do it very much (because it's often easier for everybody to have their own), but the "CVS workflow" with one common repository is another example why WE MUST NOT JUST RESET THE HEADS!

Think about it. You and somebody else works on a common branch, using a common source repo. When you "fetch", you want to get all the work that the other person has done. But you sure as hell don't want that work to overwrite your own work.

So what does git do? It notices if you have a local commit on that shared branch (because it no longer fast-forwards to the other end), and it tells you exactly that: it says that branch so-and-so doesn't fast-forward, and refuses to overwrite it.

What would you do? You should in that case switch to the offending branch, AND DO A MERGE of your work and the work you shared with another person, and then push out the result.

So the _last_ thing you want to happen is for your work to be silently just overwritten.

Trust me, git does the right thing here. No ifs, buts or maybes about it.
			Linus
Previous: Linus TorvaldsNext: Shawn Pearce
Message 7 of 43 in “git pull for update of netdev fails.”
  1. Stephen HemmingerSep 20, 2006
  2. Linus TorvaldsSep 20, 2006
  3. Petr BaudisSep 20, 2006
  4. Johannes SchindelinSep 20, 2006
  5. Petr BaudisSep 20, 2006
  6. Linus TorvaldsSep 20, 2006
  7. Linus TorvaldsSep 20, 2006
  8. Shawn PearceSep 20, 2006
  9. Linus TorvaldsSep 20, 2006
  10. Shawn PearceSep 20, 2006
  11. Johannes SchindelinSep 20, 2006
  12. Shawn PearceSep 20, 2006
  13. Johannes SchindelinSep 20, 2006
  14. Junio C HamanoSep 20, 2006
  15. Johannes SchindelinSep 20, 2006
  16. Shawn PearceSep 20, 2006
  17. Shawn PearceSep 20, 2006
  18. Shawn PearceSep 20, 2006
  19. Linus TorvaldsSep 20, 2006
  20. Johannes SchindelinSep 20, 2006
  21. Shawn PearceSep 20, 2006
  22. Johannes SchindelinSep 20, 2006
  23. Shawn PearceSep 20, 2006
  24. Jakub NarebskiSep 20, 2006
  25. Petr BaudisSep 23, 2006
  26. Shawn PearceSep 23, 2006
  27. Petr BaudisSep 23, 2006
  28. Catalin MarinasSep 23, 2006
  29. Catalin MarinasSep 23, 2006
  30. Petr BaudisSep 24, 2006
  31. Catalin MarinasSep 25, 2006
  32. Junio C HamanoSep 20, 2006
  33. Petr BaudisSep 20, 2006
  34. Linus TorvaldsSep 20, 2006
  35. Jakub NarebskiSep 20, 2006
  36. Linus TorvaldsSep 20, 2006
  37. Shawn PearceSep 20, 2006
  38. Linus TorvaldsSep 20, 2006
  39. Krzysztof HalasaSep 20, 2006
  40. Petr BaudisSep 23, 2006
  41. Jakub NarebskiSep 20, 2006
  42. Johannes SchindelinSep 21, 2006
  43. Jeff GarzikSep 20, 2006

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.