开发者

specify default branch for a non-default remote for pull

开发者 https://www.devze.com 2023-04-05 08:47 出处:网络
I have the remote o开发者_高级运维rigin set as the default branch for my current branch. I also have an upstream remote which is not the default for the branch. Is there a way to configure a default b

I have the remote o开发者_高级运维rigin set as the default branch for my current branch. I also have an upstream remote which is not the default for the branch. Is there a way to configure a default branch on the remote so when I pull it defaults to that branch?

Here is my .git/config:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:studgeek/knockout.git
[branch "gh-pages"]
        remote = origin
        merge = refs/heads/gh-pages
[remote "upstream"]
        url = git://github.com/SteveSanderson/knockout.git
        fetch = +refs/heads/*:refs/remotes/upstream/*
        merge = refs/heads/gh-pages

With this I can happily do the following and it defaults to origin/gh-pages

git pull

What I would like to do is just give it the remote upstream and have it figure out the branch (gh-pages) part so

git pull upstream

rather than this

git pull upstream gh-pages

Right now I get the following if I omit the branch:

$ git pull upstream
You asked to pull from the remote 'upstream', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.

I can see three different ways of defaulting that would work for me in my current situations, but I'm not sure how to do any of them :): * Just use the current branch as the default on the remote upstream * Indicate a default branch for the upstream remote for the current branch (while leaving origin the default branch) * Indicate a default branch on the remote. The danger here of course if I switch branches the default upstream branch stays the same. In my case that would be fine, but I can see that burning folks who didn't expect it.

Note specifying git branch for remote asks a similar question, but the solution requires doing one of two things we don't want to do - changing the default remote or explicitly listing the branch (we want this codified to avoid manual error).


In the .git/config, you can supply the information. Example if you are in branch foo and you want to pull remotely from moo

[branch "foo"]
   remote = origin
   merge = refs/heads/moo

Next time you run git pull in branch foo, it will pull from moo.

This has been covered in stackoverflow => How do you get git to always pull from a specific branch?

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号