3

创建一个新的 git 分支:

git checkout -b test

并将其推到原点:

git push origin -u 测试

并列出我现在得到的所有分支:

  master
* test
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test

现在,在另一台机器上,我想执行一个命令来获取远程分支引用。我怎样才能做到这一点?

我想要输出:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test

并且该命令不知道新分支的名称。

我试过了:git pull, git pull --all, git fetch, git fetch --all. 还有什么?

编辑:我需要一个命令告诉我:

* [new branch]      test       -> origin/test

如果不先检查分支,这可能吗?我也不想删除我的回购并再次克隆它。

4

3 回答 3

4

在另一台机器上,我想执行一个命令来获取远程分支引用。

您可以启动一个空仓库,添加一个来源并执行 ls-remote (如您在其他问题的评论中所做的那样):

git init newRepo
cd newRepo
git remote add origin /url/remote/repo
git ls-remote origin

这使您可以查看远程仓库的分支,而无需在本地克隆/获取任何内容。
而且由于您在一个空的仓库中,因此您可以决定要获取什么。


正如jthill在评论中提到的那样,该git ls-remote部分不需要从 git repo 运行。
例如,考虑:

cd / # to illustrate that you can be anywhere
git ls-remote git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 'refs/heads/*'

如果您已经有一个克隆的 repo,并且不介意下载 delta,那么 git fetch 应该可以工作,前提是它的 refspec 设置为获取所有分支。
(再次,如您的另一个问题“ git checkout new remote branch when cloning with depth 1 option ”所示)

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
于 2014-04-30T12:18:34.693 回答
0

要列出本地存储库的远程分支,在本例中是

$ git branch --remote |grep origin

在您的情况下,要更新与另一个名为 的远程存储库相对应的存储库的远程引用origin,它是

$ git fetch origin

origin/test如果它是在远程仓库上创建的,这将创建一个新的远程分支。然后,您可以将其设为本地分支并使用

git checkout --track origin/test
于 2013-09-03T12:33:39.240 回答
0

如果你已经有一个 git repo 并且只想从远程跟踪一个新分支,你可以使用:

git checkout --track origin/test

如果你想克隆一个特定的分支:

git clone -b test <remote location>
于 2013-09-03T12:35:16.600 回答