如何克隆git存储库命名空间

时间:2013-01-19 09:42:10

标签: git

我想创建一个名称空间并推送到一个裸仓库,这就是我所做的,推送工作,克隆,拉动没有。

GIT_NAMESPACE =工作

创建了一个空的仓库并添加了提交

完成git push to a bare repo;在裸仓库中,我确实看到了命名空间/工作

现在

如果我克隆它,名称空间不会来。

我有相同的环境变量集。

2 个答案:

答案 0 :(得分:2)

我是git名称空间的新手,并决定尝试一下。结果是以下脚本。它涉及三个存储库。 sample存储库推送到sample-remote裸存储库的工作命名空间。而且,我正在将sample-remote的工作命名空间克隆到sample-clone存储库中。

#!/bin/bash

set -e

cd ~/Code
git init sample
cd sample
touch file
git add file
git commit -m "First commit"
git remote add origin ~/Code/sample-remote.git
git init --bare ~/Code/sample-remote.git
GIT_NAMESPACE=work git push origin master
cd ..
git clone ext::'git --namespace=work %s ~/Code/sample-remote.git' \
    sample-clone -b master
cd sample-clone
touch file2
git add file2
git commit -m "Second commit"
git push

没有-b master参数,我收到以下错误:

warning: remote HEAD refers to nonexistent ref, unable to checkout.

,工作目录为空。

答案 1 :(得分:0)

这取决于您想要访问存储库的方式。

请参阅gitnamespaces(7)

文件系统访问示例:

git clone ext::'git --namespace=foo %s /path/to/repo.git'