我有一个master和一个development分支,这两个分支都推送到GitHub。我使用了cloned、pulled和fetched,但是除了master分支之外,我仍然无法获得其他任何东西。
我确信我遗漏了一些明显的东西,但我已经看过手册了,我根本就不了解joy。
发布于 2008-09-16 13:28:22
首先,克隆一个远程Git存储库并将其cd到其中:
$ git clone git://example.com/myproject
$ cd myproject接下来,查看存储库中的本地分支:
$ git branch
* master但还有其他分支隐藏在您的存储库中!您可以使用-a标志查看以下内容:
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental如果您只是想快速浏览一下上游分支,可以直接查看:
$ git checkout origin/experimental但是,如果您想在该分支上工作,则需要创建一个本地跟踪分支,该分支是通过以下方式自动完成的:
$ git checkout experimental你将会看到
Branch experimental set up to track remote branch experimental from origin.
Switched to a new branch 'experimental'在这里,“新分支”只是指从索引中提取分支并在本地为您创建的分支。正如前一行所告诉您的,分支被设置为跟踪远程分支,这通常意味着原始/分支名称分支。
现在,如果您查看您的本地分支,您将看到以下内容:
$ git branch
* experimental
master实际上,您可以使用git remote跟踪多个远程存储库。
$ git remote add win32 git://example.com/users/joe/myproject-win32-port
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental
remotes/win32/master
remotes/win32/new-widgets在这一点上,事情变得非常疯狂,所以运行gitk来看看发生了什么:
$ gitk --all &发布于 2011-01-14 00:42:40
如果您有许多想要一次获取的远程分支,请执行以下操作:
$ git pull --all现在,您可以根据需要签出任何分支,而无需访问远程存储库。
注意:这不会创建任何未检出分支的工作副本,这就是问题所在。有关这一点,请参见
发布于 2011-01-21 10:18:36
这个Bash脚本帮了我大忙:
#!/bin/bash
for branch in $(git branch --all | grep '^\s*remotes' | egrep --invert-match '(:?HEAD|master)$'); do
git branch --track "${branch##*/}" "$branch"
done它将为除master之外的所有远程分支创建跟踪分支(可能是从原始的clone命令获得的)。我想你可能还需要做一次
git fetch --all
git pull --all肯定的是。
One liner:
git branch -a | grep -v HEAD | perl -ne 'chomp($_); s|^\*?\s*||; if (m|(.+)/(.+)| && not $d{$2}) {print qq(git branch --track $2 $1/$2\n)} else {$d{$_}=1}' | csh -xfs
像往常一样:按照我们所知,在复制rm -rf领域之前在您的设置中进行测试
一行程序的积分转到用户cfi
https://stackoverflow.com/questions/67699
复制相似问题