Alexander Mikhailianはサブツリー内のすべてのサブモジュールを変換するためにscriptを作成しました。これをケースに合わせることができます。
はここのステップを提示:
cat .gitmodules |while read i
do
if [[ $i == \[submodule* ]]; then
mpath=$(echo $i | cut -d\" -f2)
read i; read i;
murl=$(echo $i|cut -d\ -f3)
mcommit=`eval "git submodule status ${mpath} |cut -d\ -f2"`
mname=$(basename $mpath)
echo -e "$name\t$mpath\t$murl\t$mcommit"
git submodule deinit $mpath
git rm -r --cached $mpath
rm -rf $mpath
git remote add $mname $murl
git fetch $mname
git branch _$mname $mcommit
git read-tree --prefix=$mpath/ -u _$mname
fi
done
git rm .gitmodules
私はあなたのための最も簡単なルートはprezto
レポにスクリプトを適用し、その後dotfiles
リポジトリにレポサブツリーにすることだと思います。
はdotfiles
にprezto
レポを指す新しいリモートURLを追加します:あなたはサブツリーを作成するには、次のstepsを使用しますprezto
リポジトリでスクリプトを実行した後
。
git remote add -f prezto [email protected]:path/prezto.git
ローカルdotfiles
プロジェクトにprezto
プロジェクトをマージします。これはあなたのファイルをローカルに変更するものではありませんが、次のステップのためにGitを準備します。
git merge -s ours --no-commit prezto/master
新しいprezto-subdir
というディレクトリ(またはものは何でもあなたが好き)を作成し、それにprezto
プロジェクトのGitの歴史をコピーします。
git read-tree --prefix=prezto-subdir/ -u prezto/master
変更を保存して安全に保つようにします。
git commit -m "Subtree merged in prezto"
出典
2015-12-09 17:30:48
dan
はなぜドットファイルリポジトリ内のサブツリーとして、各サブモジュールを保持していませんか? – dan
はい、それは私がしたいことです。サブモジュールを取り除き、リポジトリ全体を1つだけ維持したい – kissgyorgy