[解決済み] git リポジトリから新しいリポジトリへ、履歴を維持したまま単一のディレクトリを移動するにはどうすればよいですか?
2022-10-17 15:53:05
質問
私は、別々のディレクトリに複数のプロジェクトを含む git リポジトリを継承しました。私は、リポジトリを新しい個々のリポジトリに分割し、各プロジェクトに1つずつ、そしてマスターリポジトリにサブモジュールとしてプロジェクトを含ませたいと思います。可能であれば、個々のプロジェクトのリビジョン履歴を維持しながら、このすべてを行いたいと考えています。
私は各プロジェクトのリポジトリをクローンし、毎回他のすべてのプロジェクトを削除することができましたが、各新しいプロジェクトのリポジトリにクローンされた履歴を持つことを避けるために、より良い方法があるのでしょうか?
どのように解決するのですか?
あなたは
git filter-branch
を使って、プロジェクトの履歴を書き換えることができます。ドキュメントより。
としてリポジトリを書き換えるには をプロジェクトルートとして書き換えることです。 他の履歴はすべて破棄します。
git filter-branch --subdirectory-filter foodir -- --all
レポをいくつかコピーして、分割したい各サブディレクトリに対してそれを行ってください。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] サブディレクトリを別のGitリポジトリに切り離す(移動する)。
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
解决[email protected]。パーミッションが拒否されました (publickey)。リモートリポジトリから読み取れませんでした
-
git commit コマンドで追跡した新規ファイルをコミットすると、プロンプト *** Please tell me who you are が表示されます。
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
[解決済み] サブディレクトリを別のGitリポジトリに切り離す(移動する)。
-
git-fatal: 設定されたプッシュターゲットがありません / 警告: store/README.md の LF は CRLF に置き換えられています。
-
Git Bash报错发生: メールアドレスが自動検出されない (「Anita@newton.(none)」を取得)的解决方法。
-
[解決済み] 単一のgitコミットに対して設定されたユーザーを上書きする
-
[解決済み] GitHubで2つのブランチの差分を取るには?
-
[解決済み] GitとSSH、どちらのキーを使うか?
-
[解決済み] どのブランチとマージしたいかを言わずにpullするように言われました。