I have a script which automatically creates a new branch with a name based on external information (JIRA ticket). I don't want to create the remote branch until I've committed and pushed some code, but I don't want to have to do "git push --set-upstream origin"
In other words, I want to set the upstream before I push.
git checkout -b mybranch
git <do-something-to-prepare origin/mybranch without talking to origin>
<do work>
git commit -a -m "Made my changes."
git push
I've tried:
git branch --set-upstream-to=origin/mynewbranch
This results in:
error: the requested upstream branch 'origin/mynewbranch' does not exist.
Is there any way to do this?
You can do this using the following commands:
git config branch.mybranch.remote origin
git config branch.mybranch.merge refs/heads/mybranch
This essentially configures the same thing as --set-upstream-to
without checking that the upstream branch already exists first.
The next step is to change the push.default
option, which currently (Git 1.9) defaults to matching
(the documentation says this default will change to simple
in Git 2.0). Using matching
won't do what you want because there is no matching branch at the upstream remote yet. So:
git config push.default simple
You can set this globally (for all your repositories) using the --global
switch.
After doing this, a
git push
will push the current branch (and only the current branch) to its upstream (which you set above), creating the upstream branch if necessary.
You can use the -u
option when you push to track your local branch
git push -u origin myBranch
http://csurs.csr.uky.edu/cgi-bin/man/man2html?1+git-push
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With