Understanding Git Checkout Branch and its Usage

Checkout Branch In Git

In this comprehensive guide, we explore the powerful concept of Git checkout branch, a critical feature in the Git version control system. Git branches provide developers with the flexibility to create isolated environments for code modifications, ensuring a seamless and efficient workflow.

As you dive into this article, you’ll learn about Git, GitHub, and essential Git commands to help you understand and effectively use the checkout branch feature.

Introduction to GitHub and Git

GitHub is a fantastic open-source community that makes use of Git. Because it is a cloud-based solution, the code becomes more visible throughout the organisation, and anyone may now contribute to it. GitHub also allows developers from all over the world to collaborate. It enables developers to contribute and share information for the benefit of the worldwide community.

Git is a distributed version management system that is free and open source. It is versatile to handle everything from small-scale projects to extremely large projects or files quickly and efficiently. In software development, Git is generally used for source code management. There is a local repository in Git that contains all of the information about the central remote repository. This means that Git allows you to see changes even if you don’t have access to the remote repository. Each developer has a duplicate of the same remote repository.

Git used in 3 different ways

  • Git GUI is a graphical user interface that provides room for those who are not familiar with coding and don’t enjoy writing out command lines. If the user is focused on a single project, it is very beneficial. For instance, you can simply tap the “commit” button on the GUI interface if you want to commit. Those who don’t want to deal with code can just use the Git GUI.
  • A Unix shell called Git Bash is primarily found in Linux. You must manually type the Git-commands in Git Bash. Git Bash is a reliable and quick terminal. You would prefer to use Git Bash rather than Git CMD if you enjoy using Linux.
  • Windows comes with a shell called CMD. The only difference between CMD and Bash is how the interface and commands are used to accomplish the same task

What Does Git Checkout Branch Mean?

The git checkout branch makes additional changes after committing but is scared to do so in the main project, you may create a new branch where you can make changes without worrying about the main project. The checkout branch is highly useful for experimental tasks, and generating branches aids in teamwork. To learn more, click here.

Checking pre-existing branch

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (feature)
$ git branch
* feature
  master

The preceding example explains the use of the “git branch” command. Run git branch for a list of pre-existing branches. To identify the activated branch at a specific time, look for the asterisk.

Creating new branch

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (master)
$ git checkout -b feature
Switched to a new branch 'feature'

The above terminal demonstrates that by using git checkout -b <new branch> we may build a new branch depending on the requirements of the users. Currently, we are working on the “feature” branch.

Switching branches

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (feature)
$ git branch
* feature
  master

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (feature)
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

After executing the command git checkout <branch name> we switched our branch from “feature” to “master.”

Merging one branch into another

From one branch to another branch, we can receive data. We want to get files from the “feature” branch to the “main” branch here. Follow the terminal for further knowledge.

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (feature)
$ touch file.txt

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (feature)
$ git add -A

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (feature)
$ git commit -m "file.txt added to feature branch"
[feature 9375489] file.txt added to feature branch
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file.txt

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (feature)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

Abhishek@DESKTOP-SCHELNO MINGW64 /e/git_repo (main)
$ git merge feature
Updating 0256627..9375489
Fast-forward
 file.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file.txt

What we performed in the terminal above is :

  1. Created a new file <file.txt> in the “feature” branch.
  2. Added the file.
  3. Committed the <file.txt> file.
  4. Switched to the “main” branch.
  5. Run git merge <merge branch name>

Boom! The “main” branch will now receive all data stored in the “feature” branch.

Difference between Git checkout and Git switch

Git switch and git checkout let you create and move into a branch. The main difference between the two git commands is that git switch focuses on branches while git checkout targets commits.

  1. Starting from Git version 2.23, git switch is the recommended command to switch branches. git checkout is still available for backward compatibility, but it’s considered deprecated and might be removed in the future.
  2. The syntax of the two commands is slightly different. With git checkout, you would specify the branch you want to switch to with the git checkout <branch> command, while with git switch, you would use git switch <branch>.
  3. git switch is more intuitive and has a clearer syntax for creating and switching to new branches. For example, to create and switch to a new branch called “my-feature-branch”, you would use git switch -c my-feature-branch. With git checkout, you would have to use git checkout -b my-feature-branch.
  4. git switch is also safer to use than git checkout because it performs additional checks to ensure that your working directory is not in a dirty state. This means that you won’t accidentally lose any changes when switching branches.

Failure to deeply understand the boundary between the two commands could make it hectic to choose the right command for a task.

Conclusion

In this article, we’ve delved into the concept of the git checkout branch, along with a brief introduction to Git and GitHub. We have covered every application for the checkout branch. You’ll stay one step ahead by understanding and applying the checkout branch effectively.

Also, read the following: