The current state of development goes into the trunk/master branch. That one is supposed to be relatively stable. When you start development on a new feature, or you chase a bug, you create a branch from there, develop the feature on the branch, then merge the branch back. This allows you to have multiple outstanding changes at the same time. In professional development, usually the person merging the branch is not the person developing it, and they do a code review along with the merge. Also, typically multiple branches are outstanding at the same time, with multiple people working on each.
For hobby OSDev, you may find it useful to create branches to focus your efforts. Especially when starting out, there is so much to do it can be hard to focus. But then, while chasing issue A, you don't want to get bogged down with issue B along the way. Also, since the master is supposed to be relatively stable, you always have a version available that at least boots and runs.
Once time comes to create a release, you can create a tag from the master branch. You can also tag branch revisions, but I find that to be weird.
_________________ Thou hast outraged, not insulted me, sir; but for that I ask thee not to beware of Starbuck; thou wouldst but laugh; but let Ahab beware of Ahab; beware of thyself, old man.
|