[解決済み] Git フォルダをサブモジュールに遡及的に変換する?
2022-06-15 12:06:35
質問
ある種のプロジェクトを書いていて、しばらくすると、プロジェクトのいくつかのコンポーネントがスタンドアロンのコンポーネント (おそらくライブラリ) として実際に有用であることが明らかになる、ということはよくあります。早い段階からそのような考えを持っていたのであれば、そのコードのほとんどが専用のフォルダーにある可能性がかなりあります。
Gitプロジェクトのサブディレクトリの一つをサブモジュールに変換する方法はありますか?
理想的には、そのディレクトリ内のすべてのコードが親プロジェクトから削除され、代わりにサブモジュールプロジェクトが追加され、すべての適切な履歴があり、すべての親プロジェクトのコミットが正しいサブモジュールのコミットを指すような状態にすることです。
どのように解決するのですか?
サブディレクトリを独自のリポジトリに分離するためには
filter-branch
を使います。
git clone <your_project> <your_submodule>
cd <your_submodule>
git filter-branch --subdirectory-filter 'path/to/your/submodule' --prune-empty -- --all
あとは、元のディレクトリを削除して、サブモジュールを親プロジェクトに追加するだけです。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】サブモジュールを削除する方法は?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】マージ後のコミットでGitエラー - fatal: マージ中に部分コミットができない
-
[解決済み】以下の追跡されていないワーキングツリーファイルは、マージによって上書きされますが、私は気にしません。
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み] [email protected] へのいくつかの参考文献のプッシュに失敗しました。
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] GIT_DISCOVERY_ACROSS_FILESYSTEM が設定されていない。
-
[解決済み] .gitignore と "以下の追跡されていない作業ツリーファイルはチェックアウトによって上書きされるでしょう"
-
[解決済み] Git リポジトリのサブディレクトリのみをクローンする方法を教えてください。
-
[解決済み] ある git リポジトリから別の git リポジトリ(クローンではない)へ、履歴を保持しながらファイルを移動する方法