Git:如何将带有子模块的非裸回购放在服务器上?

Git:如何将带有子模块的非裸回购放在服务器上?,git,Git,a如何使用带有子模块的非裸git repo并使其适合安装在服务器上?(裸体) 以下工作均未完成: git clone --bare nonBare bare git clone --bare --recursive nonBare bare git clone --recursive nonBare bare; cd bare; git config --bool core.bare true 服务器是git守护进程。在服务器上创建一个裸repo mkdir bareRepo.git cd b

a如何使用带有子模块的非裸git repo并使其适合安装在服务器上?(裸体)

以下工作均未完成:

git clone --bare nonBare bare
git clone --bare --recursive nonBare bare
git clone --recursive nonBare bare; cd bare; git config --bool core.bare true

服务器是git守护进程。

在服务器上创建一个裸repo

mkdir bareRepo.git
cd bareRepo.git
git init --bare
论来源非裸回购

mkdir bareRepo.git
cd bareRepo.git
git init --bare
git push --mirror <bareRepo.git URL>
git推送——镜像

结果是出现了多个问题。考虑到git守护进程服务器不支持与我的repo相同的子模块表示,我决定将每个子模块视为一个单独的repo。我必须处理的一个问题是,由于现有的repo为我无权访问的服务器提供了远程设备,因此我必须为新服务器创建新的远程设备。在进行git推送时,只推送当前分支,而不是推送所有(旧的)远程跟踪分支

为了迁移,我编写了一个脚本,它执行以下操作:

for every submodule, created a destination directory and did a "git init --bare" in it
for every submodule
  for every branch in the submodule, do a "git checkout <branch>"
  do a "git push --mirror <destination Directory>
为每个子模块创建一个目标目录,并在其中执行“git init--bare”
对于每个子模块
对于子模块中的每个分支,执行“git签出”
做一个“git推——镜像”

谢谢,但这似乎并没有提到子模块。我使用的是git版本1.7.4.1。注意:用于创建原始回购协议的git版本较新,因此存在包含“gitdir:…”内容的.git文件。