threads / discuss / 34019

Setting of push.default or confusion about refspecs

Subject: Setting of push.default or confusion about refspecs

## tl;dr

2 messages between Jun 3, 2013 and Jun 3, 2013.

replies: 1people: 1as markdown or json

Kendall Shaw· Jun 3, 2013, 22:01 UTC · lore

I am setting up a git repository which I cloned using git svn. git ls-remote shows something like:

... refs/remotes/trunk refs/remotes/2.0.2a ...

To get the subversion branch names to appear as a local branch, I:

git remote add blah http://example.com/blah git fetch blah +refs/remotes/*:refs/heads/*

I have made changes now that are okay to be in master in my local repository and I want to push them to the remote repository. The current branch is master.

git push

complains that push.default is not set. Now, I am confused by the documentation.

push.default settings refer to either "the upstream branch" or a branch with "the same name".

What is "the same name"? Are these the same name:

master refs/remotes/origin/master

also, after the fetch above, are these the same name:

refs/heads/something refs/remotes/something

Regarding the upstream branch, I have in .git/config

[remote "origin"] url = http://example.com/blah fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"] remote = origin merge = refs/heads/master

git config -l shows

branch.master.remote=origin branch.master.merge=refs/heads/master

When in branch master, is the upstream branch refs/heads/master?

Then, I think I can get push to push to refs/remotes/origin/master by setting push.default to upstream, is that right?

In case "master" is not the same name as "refs/remotes/origin/master", can you give me an example of branches with the same name that push would push to when push.default is set to simple?

Kendall
Kendall Shaw· Jun 3, 2013, 23:21 UTC · re: Kendall Shaw · lore

Re: Setting of push.default or confusion about refspecs

On 06/03/2013 03:01 PM, Kendall Shaw wrote:
Show 19 quoted lines
> ... Regarding the upstream branch, I have in .git/config
>
> [remote "origin"]
> url = http://example.com/blah
> fetch = +refs/heads/*:refs/remotes/origin/*
>
> [branch "master"]
> remote = origin
> merge = refs/heads/master
>
> git config -l shows
>
> branch.master.remote=origin
> branch.master.merge=refs/heads/master
>
> When in branch master, is the upstream branch refs/heads/master?
>
> Then, I think I can get push to push to refs/remotes/origin/master by 
> setting push.default to upstream, is that right?

I bit the wax tadpole and tried it. I think setting push.default set to upstream does what I thought.

Kendall

← back to recent threads