1. ホーム
  2. git

[解決済み] すべてのgitコンテンツをフォルダー階層で1レベル上に移動するにはどうすればよいですか?

2023-01-30 20:53:13

質問

以下のような構造のgitリポジトリを持っています。

+--repo.git
|
+----+bootstrap.py
+----+buildout.cfg
+----+.gitignore
+----+webapp
|
+---------+manage.py
+---------+modules
+---------+templates
+---------+static
+---------+...
+---------+...

の中身を移動させたいのですが webapp フォルダの内容を一階層上に移動させたいと思います。結果として、私のレポは次のようになります。

+--repo.git
|
+----+bootstrap.py
+----+buildout.cfg
+----+.gitignore
+----+manage.py
+----+modules
+----+templates
+----+static
+----+...
+----+...

のファイルをすべて移動させるだけでできるのでしょうか? webapp ディレクトリのすべてのファイルを一階層上に移動し、空の webapp ディレクトリを削除してから変更をコミットするのですか? これによって webapp ディレクトリの下にあるファイルのコミット履歴は保存されますか?

多くの人にとって非常に単純な質問ではありますが、私は確かめたいと思います。私が最後に望むのは、gitのスープです。


ファイルを移動してみましたが、git が移動や名前の変更をうまく処理できないため、コミット履歴が失われてしまいました。ログに新しいファイルとして表示されても、そのファイルのコミット履歴を見ることができることは知っています。 git log .

私が読んだところでは、これを達成する最良の方法は git-filter . 私はシェルやgitがあまり得意ではないので、誰かが私が前述のことを行うために実行する必要があるものを教えてください。

どのように解決するのですか?

正しい方法は

git mv repo.git/webapp/* repo.git/.
git rm repo.git/webapp
git add * 
git commit -m "Folders moved out of webapp directory :-)"