In version control systems like Git, what is the purpose of creating a new branch on a repository?
A) To permanently delete files from the repository
B) To work on a separate set of changes without affecting the main codebase
C) To merge all changes directly into the main branch
D) To create a backup of the entire repository