Open3

git の submodule をやめて、外部レポジトリの内容をコピーする

bibiobibio

事前準備

  • workspace を clean にしておく
    • commit しておく
    • stash する
  • submodule側もコミット漏れなどないか確認

submodule を削除

git submodule deinit -f <submodule name>
git rm <submodule name>
rm -rf .git/modules/<submodule name>
bibiobibio

remoteに追加

今回は github に前提。

今回は submodule-remote という remote nameを使い、リモートレポジトリのURIが https://github.com/xxxxx/yyyy.git

git remote add submodule-remote https://github.com/xxxxx/yyyy.git
git fetch submodule-remote

subtree コマンドで追加

今回はworkspace root直下 の submodule ディレクトリに配置する例。

  • --squash は commit をまとめる場合に指定
  • リモートの main branchから取り込む
git subtree --prefix=submodule --squash submodule-remote main
bibiobibio

remote をお掃除

git remote remove submodule-remote 
git fetch --rpune