This page talks about Branch management in Git.
For Git, a branch is:
Example of commit log (or log):
CA1--CA2--CA3 <-- Branch A (last commit CA3)
/
C1--C2--C3 <-- master (last commit C3)
\
CB1--CB2 <-- Branch B (last commit CB2)
The term “branch head” (or just “head”) reference to the most recent commit on a branch.
In the example above, the branch head of:
If you are not on a last commit, you are no more on a branch, you are in a detached mode
The identification of branch may have a / or a space
remote/name
remote name
A branch name is just a ref (A name attached to a commit sha).
A local branch is a branch that exists only on your computer.
A local tracking branch is a local branch that is tracking another branch.
See remote branch
See:
Creating two features branch:
Each feature is added back to the master individually. So if glasses are finished before the cowboy hat, no problem.
More see Git - Workflow (Branching Strategy)
Example of workflow
# Create a feature branch
git checkout -b feature-myfeature develop
# Merge your work
git checkout develop
git merge --no-ff feature-myfeature
# Delete your branch
git branch -d feature-myfeature
# Integrate your work into the master repo
git push origin develop
The git docs/git-branch.html command lists, creates, or delete branches.
The working or current branch is the branch actually in the working tree.
More… see current
Keeping your branch current with a parent branch (master for instance)
When merging two branches, Git check the commit sha of the branche ref and add the missing's one accordingly.
Example:
Update the master / main branch
git checkout master
git fetch origin
:: git fetch upstream
git merge origin/master
:: git merge usptream/master
Update the branch (Rebase)
git checkout branchName
git rebase master
Ctrl + T shortcut on IDEA
fetch all the remote branches from origin
git fetch origin
git branch --remotes
# or
git branch -r
Check out an existing branch
cd path/to/git/repository
git fetch origin
git checkout brancheName
git checkout brancheName
Switched to a new branch 'brancheName'
Branch 'brancheName' set up to track remote branch 'brancheName' from 'origin'.
The branch is now a remote tracking branch (a local branch that tracks the remote branch
where:
See Git - Tag
git switch
Example:
git switch -m mytopic
where m performs a three-way merge
git stash # keep the modification in a stash branch
git pull # get the last one
git stash pop # Destash the modification
Revert to the head of the upstream/master branch
git reset --hard upstream/master
git checkout branchName
Switched to branch 'branchName'
When you want to share a branch with the world, you need to push it up to a remote that you have write access to.
git push <remote> <branch>
git branch -d branchName
git push origin --delete branchName