开发者

Update git-svn list of remote branches

When I have to use svn, I use git-svn to talk to svn. I cloned the repo with the standard git svn clone -s line, and all the remote branches at the time were there.

Since then, a new branch has been created, but not by me. I want to checkout/track this branch locally. I can track a branch that I can see (with git branch -r) like s开发者_如何学Goo:

git checkout -t -b dev remotes/development

But this doesn't work with the other branch, since it doesn't show up in git branch -r

How can I track this missing branch?


After running the following commands, you'll be able to see the new branch on the git side:

$ git svn fetch
$ git svn rebase

Make sure your branch is clean first.


git svn rebase

will rebase the current branch and all the branches that you have indicated should be automatically fetched in your local repository configuration.

git svn fetch

will fetch all the branches from the SVN repository as described when you originally did the git svn clone (including new ones). This is in contrast to the behaviour of

git fetch

which only fetches the branches you've specified, as with the git svn rebase.

This difference is primarily because git can't "see" the SVN remotes branches until they've been pulled into the local repository vs when you clone a git repository and git branch -a shows all the remote branches (even those that aren't tracked/won't be updated with a fetch).


git svn rebase --fetch-all will tackle it, refer to the man page:

This fetches revisions from the SVN parent of the current HEAD and rebases the current (uncommitted to SVN) work against it.

[...]

This works similarly to svn update or git pull

[...]

This accepts all options that git svn fetch and git rebase accept. However, --fetch-all only fetches from the current [svn-remote], and not all [svn-remote] definitions.

:i: BUT it fetches all svn copies / branches

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜