2016-12-09 10 views
-1

どのようにサブモジュールで非裸のgit repoを取って、サーバにインストールするのに適していますか?次の作業(裸)Git:サーバーにサブモジュールを搭載した非裸のレポをどうやって入れるのですか?

なし:

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のデーモンではありません。サーバー上で

答えて

0

ソース非裸のレポでは、裸のレポ

mkdir bareRepo.git 
cd bareRepo.git 
git init --bare 

を作成

git push --mirror <bareRepo.git URL> 
+0

おかげで、それはサブモジュールをピックアップしていないようです。私はgitのバージョン1.7.4.1を使用しています。 –

+0

注:オリジナルのreposを作成するためにgitのバージョンが新しいので、 "gitdir:..."という内容の.gitファイルがあります。 –

0

では、複数の問題があったことが判明。 gitデーモンサーバが、私が持っていたリポジトリと同じサブモジュール表現をサポートしていなかったことを考えると、私は各サブモジュールを個別のリポジトリとして扱うことにしました。私が対処しなければならなかった問題の1つは、既存のレポにはアクセスできないサーバーのリモートがあったため、新しいサーバーの新しいリモートを作成する必要があったということでした。 git pushが行われたとき、現在のブランチだけがプッシュされ、(古い)リモートトラッキングブランチのすべてがプッシュされませんでした。移行するには

、私は次のことをやったスクリプトを書きました:

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> 
関連する問題