【发布时间】:2021-05-27 09:35:45
【问题描述】:
我想用 github 上的一个项目(不是我的)做一些时髦的事情。所以我想基本上克隆它,但我不想有一个工作树......所以这就是我所做的:我在本地创建一个裸仓库,然后我向 github 仓库添加了一个远程仓库。我取了,我得到了那个 repo 包含的所有东西......我是一个快乐的人......直到我想检查可用的分支:
$ git branch -a
$
好吧...这不是我所期望的。如果我尝试检查 repo 中的任何分支(我知道那里存在),我只会让 git 告诉我引用不存在:
$ git show --summary origin/master
fatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
如何从我的裸仓库中的远程仓库寻址分支(或实际上任何东西)?
更新
我认为 git 应该能够处理这个问题的假设实际上是正确的。它确实可以正确管理它......但是,因为它是一个大项目,git 在添加远程后运行 fetch 时失败了......并且我之前没有收到该错误消息。 :-O
$ git fetch upstream
remote: Enumerating objects: 60400, done.
remote: Counting objects: 100% (60400/60400), done.
remote: Compressing objects: 100% (32/32), done.
Receiving objects: 100% (4133663/4133663), 1.41 GiB | 12.29 MiB/s, done.
remote: Total 4133663 (delta 60370), reused 60389 (delta 60368), pack-reused 4073263
Connection to github.com closed by remote host.
Resolving deltas: 100% (3134856/3134856), done.
所以……总而言之,显然是我的错。
【问题讨论】:
-
你比我知道的更多,但我想知道:如果你要获取,那么裸回购的意义何在?正如您所说,您拥有远程存储库包含的所有内容 - 因此您不可能试图节省空间。有“没有工作树”的原因大概是为了让你可以使用 this repo 作为遥控器?这是重点吗?谢谢
-
使用
git show --summary master
。裸仓库不需要远程跟踪分支,所以默认没有origin/master
这样的分支。 -
@matt 我只是想从中获得一些乐趣,并不打算实际处理任何文件......在我的情况下,我想使用 gource 生成视频。
-
@eftshift0 先试试
git remote update
。 -
@ElpieKay,
git remote update
实际上把它拉下来并创建了远程分支和标签。您能否将其添加为答案,并在可能的情况下解释为什么在初始获取后运行git remote update
是必要的?我本来希望获取生成这些引用...实际上在我的情况下,而不是执行git remote add; git fetch
,运行git remote add; git update
会成功吗?我应该运行git update
而不是运行git fetch
?
标签: git git-remote git-bare