Git-branch guide

How to manage multiple branches in a single repo with git

view on github

How to manage multiple branches in a single repo with git :

# add <remote-repository> as 'origin' remote for current repository
git remote add origin git@github.com:<user>/<remote-repository>.git

# display remotes urls for current repository
git remote -v

# list all local and remote branches
git branch -la

# create local new branch <newbranch> by copying 'master' (or any other branch)
git branch -c master <newbranch>

# switch to branch <newbranch> (do not use git switch)
git checkout <newbranch>

# pushes local branch <newbranch> commits to remote 'origin' (<newbranch> is created in the remote if it's missing)
git push -u origin <newbranch>

# display HEAD, all local and remote branches and their current commits as well as commit history for each branch
git log --oneline --decorate

# display HEAD, all local and remote branches / commits arborescence (if history is divergent)
git log --oneline --decorate --graph --all

# incorporate all the commits made to <sourcebranch> into <targetbranch>
# all commits since <sourcebranch> commits history diverged from <targetbranch>'s will be merged
# useful when creating a new branch from <targetbranch> for debugging purposes
# merge it back into <targetbranch> when debugging is done
git merge <targetbranch> <sourcebranch>

# undo all changes and deletions on current branch since last commit (preserves newly created files)
git reset HEAD --hard