Rebase is the process of changing the commit history of a branch by applying commits from another branch. Instead of using
merge to combine changes,
rebase allows you to
insert new commits into the current branch's commit history without creating merge commits.
For example, let's say you have two branches:
main. You are working on
feature-branch and want to apply the latest commits from
main onto your current branch. You can use rebase to achieve this:
git checkout feature-branch git rebase main
When you run this command, Git will take the commits from
main and apply them onto
feature-branch. This means that all the commits on
feature-branch will appear after the commits from
main. The result is a cleaner and more readable commit history on
However, when using rebase, it's important to note that changing commit history can impact publicly shared branches. Therefore, if you have already pushed commits from your current branch to a remote repository, it's generally advised not to use rebase on that branch to avoid conflicts and a messy commit history.
Branch switching in Git refers to the process of moving from one branch to another. When you switch branches, Git moves the HEAD pointer to the new branch, allowing you to work on that branch and make changes without affecting other branches.
For example, let's say you have branches
main. To switch to
feature-branch, you would use the following command:
git checkout feature-branch
After switching branches, you can make changes in the working directory. All
checkout commands will apply to the current branch.
For example, if you add a new file and commit it on
feature-branch, only that branch will contain the commit, while
main remains unaffected. This allows you to develop separate features, fix bugs, or work on different versions of the code independently. You can switch between branches whenever needed to work on each branch separately.