Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Post History

66%
+2 −0
Q&A What are the benefits of starting a Git repo with an empty commit?

Quoting an answer from SO: Perhaps there was an advantage years ago prior to version 1.17.12 which added the --root option to rebase. Nowadays though, I can't think of any reason to start with a...

posted 1y ago by toraritte‭  ·  edited 1y ago by Michael‭

Answer
#2: Post edited by user avatar Michael‭ · 2023-11-08T17:06:25Z (about 1 year ago)
Add release year for the relevant Git version.
  • Quoting [an answer from SO](https://stackoverflow.com/a/77446640/1498178):
  • > Perhaps there was an advantage years ago [prior to version 1.17.12][1] which added the `--root` option to rebase. Nowadays though, I can't think of any reason to start with an empty commit for a *new* repository.
  • >
  • > However, there may still be some minor advantages when re-organizing *existing* repositories, for example:
  • >
  • > 1. When combining existing repositories into a monorepo, you could start with one repo and merge in the others, or you could start with an empty commit and merge in each repo to that commit, so the first-parent history is preserved from the point of view of the new monorepo instead of one of the existing repos. It also allows you to provide additional information in the merge commit for bringing in that first repo.
  • > 2. When porting source code from SCMs other than Git, some tools may expect a Git anchor commit to work against, so that the loop can be identical for every new commit, rather than having different logic for the initial commit.
  • <sup>The linked answer is licensed under CC BY-SA 4.0 and it was quoted verbatim [as it was on 11/8/2023 at 1013](https://web.archive.org/web/20231108151028/https://stackoverflow.com/questions/77446305/what-are-the-benefits-of-starting-a-git-repo-with-an-empty-commit?noredirect=1#comment136533393_77446305). </sup>
  • [1]: https://stackoverflow.com/a/14630424/184546
  • Quoting [an answer from SO](https://stackoverflow.com/a/77446640/1498178):
  • > Perhaps there was an advantage years ago [prior to version 1.17.12][1] which added the `--root` option to rebase. Nowadays though, I can't think of any reason to start with an empty commit for a *new* repository.
  • >
  • > However, there may still be some minor advantages when re-organizing *existing* repositories, for example:
  • >
  • > 1. When combining existing repositories into a monorepo, you could start with one repo and merge in the others, or you could start with an empty commit and merge in each repo to that commit, so the first-parent history is preserved from the point of view of the new monorepo instead of one of the existing repos. It also allows you to provide additional information in the merge commit for bringing in that first repo.
  • > 2. When porting source code from SCMs other than Git, some tools may expect a Git anchor commit to work against, so that the loop can be identical for every new commit, rather than having different logic for the initial commit.
  • <sup>The linked answer is licensed under CC BY-SA 4.0 and it was quoted verbatim [as it was on 11/8/2023 at 1013](https://web.archive.org/web/20231108151028/https://stackoverflow.com/questions/77446305/what-are-the-benefits-of-starting-a-git-repo-with-an-empty-commit?noredirect=1#comment136533393_77446305). </sup>
  • Git version 1.7.12, which added `--root`, was released in 2012.
  • [1]: https://stackoverflow.com/a/14630424/184546
#1: Initial revision by user avatar toraritte‭ · 2023-11-08T15:15:41Z (about 1 year ago)
Quoting [an answer from SO](https://stackoverflow.com/a/77446640/1498178):

 > Perhaps there was an advantage years ago [prior to version 1.17.12][1] which added the `--root` option to rebase. Nowadays though, I can't think of any reason to start with an empty commit for a *new* repository.
>
> However, there may still be some minor advantages when re-organizing *existing* repositories, for example:
>
> 1. When combining existing repositories into a monorepo, you could start with one repo and merge in the others, or you could start with an empty commit and merge in each repo to that commit, so the first-parent history is preserved from the point of view of the new monorepo instead of one of the existing repos. It also allows you to provide additional information in the merge commit for bringing in that first repo.
> 2. When porting source code from SCMs other than Git, some tools may expect a Git anchor commit to work against, so that the loop can be identical for every new commit, rather than having different logic for the initial commit.

<sup>The linked answer is licensed under CC BY-SA 4.0 and it was quoted verbatim [as it was on 11/8/2023 at 1013](https://web.archive.org/web/20231108151028/https://stackoverflow.com/questions/77446305/what-are-the-benefits-of-starting-a-git-repo-with-an-empty-commit?noredirect=1#comment136533393_77446305). </sup>

  [1]: https://stackoverflow.com/a/14630424/184546