1

很抱歉这么简单的问题,但是如何使我添加的 git 存储库在我的主服务器中本地可见?

细节:

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

所以这是隐藏的:

隐藏回购

这是可见的:

可见回购

4

1 回答 1

1

子模块是引用另一个回购历史中的固定点的好方法。
请参阅“子模块的真实性质”。

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

git submodule update --init

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

如果您已经声明了一个子模块而没有利用该选项,请参阅“如何使现有子模块跟踪分支”。


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

实际上,完整的命令是:

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

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

  • 一个裸仓库(您可以在服务器上克隆代表您的实时文件但尚未显示子模块内容的当前仓库--bare,并从您的客户端推送到该裸仓库)

  • 一个接收后挂钩,类似于我在“远程裸机上的 Git 子模块”中描述的内容。

那将是:

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
于 2013-09-23T05:42:07.467 回答