11

I am using Git, and I have created a new branch (named foo) on my local (one that doesn't exist on the repository).

I have made some changes to my original project (master) files and committed all those changes in this new branch. Now I would like to 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.

2

6 Answers 6

11

Yes. It'll prompt you to set the upstream. You can set the upstream branch like this:

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

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

Sign up to request clarification or add additional context in comments.

1 Comment

--set-upstream has been deprecated (and will soon be removed) in favor of --track or --set-upstream-to
10

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. (Git documentation)

Comments

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

Comments

1

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

Comments

1

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

git push origin foo:foo 

1 Comment

With commands like this, the whole foo bar syntax can be a bit too vague with annotating foo(local) bar(remote). According to your example, the name has to be identical, which is not the case.
1

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 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.