'Pushing a new branch in GIT

I am using GIT, and I have created a new branch (named foo) on my local (one that doesn't exist on the repository). Now, I have made some changes to my original project (master) files and committed all those changes in this new branch. What I would now like to do is push this new branch to the remote repository. How can I do that? If I just run git push while I am on the branch foo, will this push the entire branch to the repo. I don't want my changes to be pushed to master. I just want to push this new branch to the main repository.

git


Solution 1:[1]

Yes. It'll prompt you to set the upstream.

Example

git branch --set-upstream origin yourbranch

It's same for everything except for the branch name. Follow the on screen guidelines.

Solution 2:[2]

To push a branch onto a remote repository you should use this syntax

git push (remote) (branch)

Usually the first remote (and often the unique) is named "origin", thus in your case you would run

git push origin foo

It is usually advisable to run a slightly more complex command

git branch --set-upstream-to origin/foo

because "--set-upstream-to" (abbreviated "-u") sets a tracking on that branch and will allow you to push future changes simply running

git push origin

"Tracking branches are local branches that have a direct relationship to a remote branch. If you’re on a tracking branch and type git pull, Git automatically knows which server to fetch from and branch to merge into." (cit. git documentation)

Solution 3:[3]

checkout in to your local branch and use: git push -u origin <branch>. this will create the new branch at the remote and push all the changes

Solution 4:[4]

git push origin foo should do the trick. Latest git versions only push single branches (so git push would work as long as you checked out foo ) unless you change push behaviour in git config.

Reference can be found here

Solution 5:[5]

If the upstream is defined OK, run the following command:

git push origin foo:foo

Solution 6:[6]

use git remote -v to show your remote repo name and url:

origin   ssh://**/*.git (fetch)
origin   ssh://**/*.git (push)

origin is your remote repo name at local: You can use this command to push your new branch to origin remote repo:

git push origin [your-branch-name]

Like this:

git push origin foo

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 iamgr007
Solution 2 SherylHohman
Solution 3 gutte
Solution 4 Hevlastka
Solution 5 yorammi
Solution 6 haiyang