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

Re: Editing the root commit

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 19, 2012, 10:09 UTC
Message-ID
<7vy5nj1uld.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20120619091657.GA28005@arachsys.com>
Chris Webb <chris@arachsys.com> writes:
> The first is whether there's a clever symbolic way to refer to the root of
> the current branch, rather than tailing git log output? gitrevisions(7)
> doesn't obviously suggest one.
There is not, for a few good reasons.

The very first commit is no more special than any other commit in the history. Some projects may start with "the first working version", in which case there may be some value to be able to refer to it, while some other projects may start with "the initial snapshot" whose specialness comes _only_ from it being the first one.

"The first working version" specialness may deserve to be tagged, and in that case you would already have a name to refer to it. If on the other hand the first one isn't even worth to be tagged, it does not deserve to waste a short-hand to refer to it at the machinery level. So there is nothing listed in the gitrevisions(7) for it.

Also there is a more important question: Which root commit? There does not necessarily have to be a single "the root" commit in the history.

>   git checkout --orphan rewritten
>   git rm -rf
>   git rebase --interactive --root --onto rewritten master

The argument to "--onto" must be a commit, but "checkout --orphan" is not a way to create a commit; it is a way to bring you to a state without any commit.

I personally think "git rebase -i --root" should be made to just work without requiring "--onto" and let you "edit" even the first one in the history. It is understandable that nobody bothered, as people are a lot less often rewriting near the very beginning of the history than otherwise.

Even though I wouldn't bother doing this myself, I wouldn't mind reviewing a patch series ;-)

Previous: Chris WebbNext: Chris Webb
Message 2 of 29 in “Editing the root commit”
  1. Chris WebbJun 19, 2012
  2. Junio C HamanoJun 19, 2012
  3. Chris WebbJun 19, 2012
  4. Chris WebbJun 20, 2012
  5. Junio C HamanoJun 20, 2012
  6. Jeff KingJun 20, 2012
  7. Chris WebbJun 20, 2012
  8. Jeff KingJun 20, 2012
  9. Chris WebbJun 22, 2012
  10. Junio C HamanoJun 22, 2012
  11. Chris WebbJun 22, 2012
  12. Chris WebbJun 22, 2012
  13. Junio C HamanoJun 22, 2012
  14. Chris WebbJun 23, 2012
  15. git-commit bug (was Re: Editing the root commit)Chris Webb, Jun 26, 2012
  16. git-checkout: disallow --detach on unborn branchChris Webb, Jun 26, 2012
  17. Junio C HamanoJun 26, 2012
  18. Chris WebbJun 26, 2012
  19. 1/2 rebase -i: support --root without --ontoChris Webb, Jun 26, 2012
  20. Junio C HamanoJun 26, 2012
  21. Chris WebbJun 26, 2012
  22. Junio C HamanoJun 26, 2012
  23. Chris WebbJun 26, 2012
  24. Junio C HamanoJun 26, 2012
  25. Chris WebbJun 26, 2012
  26. 2/2 Add tests for rebase -i --root without --ontoChris Webb, Jun 26, 2012
  27. Chris WebbJun 20, 2012
  28. Martin von ZweigbergkJun 25, 2012
  29. jaseem abidJun 19, 2012

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.