从裸git存储库推送

时间:2018-08-29 17:09:14

标签: git git-bare

我正在尝试使用裸git回购作为我的工作回购与来源之间的桥梁

origin ----- bare repo ----- working repo

我可以进入工作仓库并从裸仓库中推拉。但是我还需要进入裸仓库并从源头开始推拉,这有可能吗?

编辑

到目前为止我尝试过的...

创建裸仓库

mkdir bare_repo
cd bare_repo
git init --bare
git remote add origin path_to_origin
git fetch origin

创建工作仓库

git clone path_to_bare

我收到警告:“远程HEAD指的是不存在的引用,无法检出”,但它仍会创建有效的存储库

git pull origin master

我收到一个错误:“找不到远程引用主机”

更新

原来我有写权限问题,所以我无法从工作存储库推送到裸存储库。所以我一般来说,在问问题之前,我需要检查我所有回购地点的权限...现在一切正常...

一件事是,如果其他人将提交推送到源,我将需要从裸仓库中获取该提交并更新裸仓库上的分支。提取足够简单

# in bare repo
git fetch origin master

但是我不知道更新分支的最佳方法。我不能拉,因为没有工作目录。我可以使用

获取新提交的哈希
git ls-remote

,然后使用

手动将分支指向它
git branch -f master <hash>

但是似乎会有更好的方法。

但是我认为这应该是一个单独的问题。

1 个答案:

答案 0 :(得分:1)

您可以使用git clone --bare <repo url>

将原始存储库克隆为裸存储库。