Checkout branch without detaching from head git fetch git --track branchName origin/branchName Merge from branchA to branchB locally git checkout branchB git merge branchA Delete branch locally git branch -d branchName