0

(这个问题建立在How do I update my bare repo? and git fetch doesn't fetch all branches。)

我从 GitHub 克隆了一个裸存储库,其想法是:

  • 开发者使用 GitHub,并推送到 Github。
  • 在服务器上,上述裸仓库从 GitHub 获取(比如,/var/repo/my_repo
  • 裸仓库被克隆到一个或多个“文档根”位置以进行 Web 服务,以方便对代码库的各种检查。因此,/var/www/my_repo_live两者/var/www/my_repo_dev都是非裸克隆,/var/repo/my_repo但具有不同的分支或标签已签出以供服务。

我似乎遇到了一些复杂性——来自git clone 手册页

  • 使用时--bare,“远程的分支头直接复制到对应的本地分支头,不映射到refs/remotes/origin/.”
  • “既没有创建远程跟踪分支,也没有创建相关的配置变量。”

这是有道理的:由于您不会在裸存储库中进行编辑,因此您不需要将远程跟踪与本地跟踪分支分开。但是之后:

  • 应该怎么取?
  • 鉴于远程分支头直接复制到相应的本地分支头,你如何设置你的remote.$remote_name.fetchrefspec?应该只是fetch = +refs/heads/*:refs/heads/*

PS/var/repo/my_repo出于许可原因,我将与文档根存储库分开。我不希望面向公众的www-data进程有权访问链接到 GitHub 的存储库。这是矫枉过正吗?不管它是否矫枉过正,我仍然想知道如何使用裸仓库正确管理获取。

4

0 回答 0