Branching with Git and GitHub

Branching: What are branches?

In the world of software development, the ability to manage different versions of source code is essential. Git, one of the most popular distributed version control systems, allows developers to collaborate effectively and securely, and one of the fundamental concepts for this collaboration is that of branches (branches).

A branch in Git is essentially a moving pointer to one of the commits. When you create a Git repository, by default it comes with a main branch called master or main. Each time you make a commit, Git automatically moves the master pointer forward to the last commit. But the real power of branches comes when you start creating new branches.

Why use branches?

Branches are used to develop features in isolation from each other. master is the "default" branch when you create a repository. Use other branches for development and then merge them back into the main branch when they are ready. This facilitates parallel development among team members, as everyone can work on their own features without interfering with the work of others, and it also helps keep the project history organized and clean.

Creating branches

Creating a new branch is a quick and simple process. The git branch <branch-name> command creates a new branch, but does not automatically switch to that branch. To switch to the branch you just created, you would use the git checkout <branch-name> command. Git also offers a shortcut to create and switch to a new branch in a single command: git checkout -b <branch-name>.

Working with branches

Once a branch has been created, you can work on it as if it were the main branch. You commit the same way, and Git will maintain separate commit history for each branch. This means that you can develop a feature in your branch, while someone else may be working on something else in the main branch or another branch.

Merging branches

When a feature is ready to be merged into the main branch, you can use the git merge <branch-name> command. Git will automatically try to merge the changes. If there are no merge conflicts, that is, if the same parts of the files were not modified in different ways in the two branches, then the merge will be done automatically. However, if there are conflicts, Git will stop and ask you to resolve these conflicts manually before completing the merge.

Merge conflicts

Merge conflicts happen when two people change the same part of a file in different ways on two different branches and Git can't determine which version to keep. When this happens, Git marks the file as conflicting and stops the merge process. It is the developer's responsibility to resolve these conflicts by editing the files and choosing which changes to keep. After resolving the conflicts, you need to add the files to the staging area with git add and then complete the merge with git commit.

Deleting branches

After you merge a branch and confirm that it is no longer needed, you may want to delete it to clean up your repository. To delete a local branch, you can use the command git branch -d <branch-name>. If the branch has not been merged and you still want to delete it, you can force the deletion with git branch -D <branch-name>. To delete a remote branch, you would use git push origin --delete <branch-name>.

Good branching practices

There are several branching strategies that different teams can adopt, but some best practices are universal. For example, it's a good idea to keep the main branch as stable as possible.el possible and do all development and testing in separate branches. Another best practice is to name your branches clearly and meaningfully, so that it's easy to understand the purpose of each branch just by looking at its name.

Integration with GitHub

GitHub, a source code hosting and collaboration platform, uses Git as its version control system. GitHub adds a layer of functionality to Git, such as pull requests, which are a way to tell the team that you've completed work on a branch and that it's ready to be reviewed and possibly merged into the main branch. GitHub also offers tools to view commit history across different branches, compare changes, and review code before merging branches.

Conclusion

Branches are a fundamental part of working with Git and GitHub. They allow developers to work in isolation without affecting the main code, and facilitate collaboration and code review. Understanding how to create, use, and merge branches is essential for any developer who wants to use Git and GitHub effectively. Practice and experience will help you hone your branching skills and adopt best practices for your team's workflow.

Now answer the exercise about the content:

Which command is used to create a new branch in Git and what is the subsequent procedure to switch to this new branch?

You are right! Congratulations, now go to the next page

You missed! Try again.

Article image Creating and experimenting with branches

Next page of the Free Ebook:

15Creating and experimenting with branches

5 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text