【问题标题】:Make hidden git repository viewable使隐藏的 git 存储库可见
【发布时间】:2013-09-27 14:16:14
【问题描述】:

对于这么简单的问题,我很抱歉,但是如何让我添加的 git 存储库在我的 master 中本地可见?

详情:

  1. repo,在本例中为“stripe-php”,实际上位于另一个 repo 中,即我的应用程序。
  2. 可视化问题:“stripe-php”隐藏存储库在 github 网站上显示为灰黑色而不是浅蓝色。

所以这是隐藏的

这是可见

【问题讨论】:

  • 你的仓库中有 .gitmodules 文件吗?看起来 stripe-php 是一个尚未初始化的子模块 (stackoverflow.com/q/16301338/6309)。
  • @VonC 正在阅读有关子模块的信息。我对此一无所知。 Some argue against using them。您介意发表您的看法吗?
  • @VonC ok 添加为子模块,但现在我认为它只是指向 repo 的链接,而不是 repo 本身。看这张照片imgur.com/5NLxTqT
  • 确实是一个链接。我在下面的回答中详细说明了这个概念。

标签: git version-control github repository


【解决方案1】:

子模块是引用另一个回购历史中的固定点的好方法。
见“True nature of submodules”。

添加一个子模块是不够的,你必须初始化它并更新它:

git submodule update --init

您还可以声明一个子模块,以遵循 ots 上游 repo 的某个分支。
见“git submodule tracking latest”。

如果您已经声明了一个子模块没有利用该选项,请参阅“How to make an existing submodule track a branch”。


如果您从 GitHub 拉取,则在您的实时存储库中的服务器上一个简单的 git submodule update --init 就足以更新您的子模块。

实际上,完整的命令是:

git submodule update --init --recursive --force

如果您直接推送到您的服务器,要查看实时服务器中更新的子模块,您需要:

  • a bare repo(您可以在您的服务器上克隆代表您的实时文件但尚未显示子模块内容的当前存储库,使用 @987654332 @ 选项,然后从您的客户端推送到该裸仓库)

  • 一个类似于我在“Git submodule on remote bare”中描述的接收后挂钩。

那就是:

cd /path/to/your/bare/repo.git
$ cat > hooks/post-receive

#!/bin/sh
GIT_DIR=/path/to/live/repo/.git
GIT_WORK_TREE=/path/to/live/repo
cd /path/to/live/repo
git pull /path/to/your/bare/repo.git
git submodule update

$ chmod +x hooks/post-receive

【讨论】:

  • 子模块可以是实际的目录而不仅仅是链接吗?即使在initupdate 之后,子域文件也不存在于我已经pull主存储库的远程存储库中。
  • @timpeterson 它们是一个目录,但在 git index 中表示为一个特殊条目 (stackoverflow.com/a/2227598/6309)。您不会在远程存储库中看到 GitHub 中表示的子模块中的文件。但是git submodule update --init 会在您的本地克隆中填充相同的子模块文件夹。
  • @timpeterson 例如我自己的项目github.com/VonC/compileEverything/tree/master/gitolite。它确实包含 gitolite,但您必须单击“2f48a3e”链接才能访问 gitolite 回购内容。
  • -@VonC 感谢您的帮助!所以也许子模块不是我需要的。我需要文件 b/c 我的远程仓库是我的实时网站,如果没有这些文件,网站将无法运行。考虑什么可能更合适?
  • @timpeterson 是的,这也可以工作:您需要推送到一个裸仓库(包括您的子模块的特殊条目),并有一个 post-receive 挂钩,它将:a/ cd 到您的live repo, git pull 你在裸 repo 中收到的内容到 live repo, b/git 子模块更新。参见例如stackoverflow.com/a/11178531/6309
猜你喜欢
  • 2013-07-12
  • 1970-01-01
  • 2012-05-10
  • 2017-04-06
  • 2017-11-09
  • 2012-02-11
  • 2013-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多