问题
I have Git configured so that when I run git push
, it pushes changes to my GitHub repo. Until now I have only had a master branch.
However, I have now created a local branch and committed to it using:
git checkout -b my_new_branch
git commit
What I would like to do now is push my changes on this branch to GitHub. Do I just do a git push?
When I first set it up I did run:
git config push.default current
回答1:
I believe you're looking for git push origin my_new_branch
, assuming your origin remote is configured to hit your github repository.
回答2:
Depending on your local git settings, if you have a branch checked out that isn't the one you cloned or one that exists where you are trying to push, git will not push your local branch.
Here is the message it provides:
warning: push.default is unset; its implicit value has changed in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the traditional behavior, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
When push.default is set to 'matching', git will push local branches to the remote branches that already exist with the same name.
Since Git 2.0, Git defaults to the more conservative 'simple' behavior, which only pushes the current branch to the corresponding remote branch that 'git pull' uses to update the current branch.
See 'git help config' and search for 'push.default' for further information. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode 'current' instead of 'simple' if you sometimes use older versions of Git)
fatal: The current branch
MyLocalBranch
has no upstream branch. To push the current branch and set the remote as upstream, usegit push --set-upstream origin MyLocalBranch
回答3:
If you are really lazy, you can push all local branches by simply using
git push --all
--all
Push all branches (i.e. refs under
refs/heads/
); cannot be used with other<refspec>
.
回答4:
If you've configured your git to push to your GitHub master repo, no matter in with branch you are, it will push to your GitHub master repo.
Bear in mind that, if many developers are working in the same repository, you could get a conflict.
来源:https://stackoverflow.com/questions/4752387/pushing-a-local-branch-up-to-github