It is important to specify <remote> <branch>
in every pull and push in the scenario. If not specified, would be default master.
- branch
# list all branches, including local and remote
git branch -a
# create new local branch
git branch <new_branch_name>
# switch to another branch
git checkout <another_branch>
# switch no to new local branch (combine the steps above)
git checkout -b <new_branch_name>
# delete a branch, use -D for force delete
# need to checkout to another branch before delete
git branch -d <branch>
- clone
# clone a repository in specific remote branch
git clone --branch <branch_name> <remote_repo_url>
git clone -b <branch_name> <remote_repo_url>
# clone a specific remote branch
# and does not track other remote branch
git clone -b <branch_name> --single-branch <remote_repo_url>
- pull (fetch+merge)
git pull origin <branch>
- push
# push to a new remote branch not yet created
git push --set-upstream <remote> <branch_name>
git push -u <remote> <branch_name>
# push to remote branch
git push <remote> <branch_name>
# delete a remote branch
git push <remote> --delete <remote_branch_name>
Usually <remote>
would be origin
unless working with another repository (eg. deploying app to heroku)
origin
stands for the remote repository that a project was originally cloned from.
- overwrite local repository
git fetch --all
git reset --hard origin/master
replace master with whatever branch originally wanted
Top comments (0)