Gitのサブディレクトリを新しいリポジトリに分割する方法
原文は Ellie Huxtable により に公開されました。 このブログを購読する
まず、git-filter-repoをインストールします。これは依存関係のないPythonスクリプトです。
インストールは簡単です。スクリプトをPATHの通った場所に置くだけです。私の場合は次のようにしました:
curl "https://raw.githubusercontent.com/newren/git-filter-repo/main/git-filter-repo" -o ~/.local/bin/git-filter-path注意すべき重要な点として、git-filter-repoはリポジトリ内の他のすべてのファイルをsubdir内のファイルで置き換えます。データの損失を避けるため、リポジトリのフレッシュなコピーで作業してください。
リポジトリが次のようになっていると想像してみましょう
🦄 ls -l
.rw-r--r-- ellie staff 0 B Mon Jul 29 14:13:39 2024 LICENSE
.rw-r--r-- ellie staff 0 B Mon Jul 29 14:13:34 2024 README.md
drwxr-xr-x ellie staff 64 B Mon Jul 29 14:13:35 2024 src/
drwxr-xr-x ellie staff 64 B Mon Jul 29 14:13:43 2024 subdir/そして、subdirの中身を独立したリポジトリにしたいとします。
次のコマンドを実行します
git filter-repo --subdirectory-filter subdirコミットメッセージの書き換え
私は普段Conventional Commitsに従っているので、次のようなスコープ付きのコミットがたくさんありました
feat(subdir): do a thingsubdirが独立したリポジトリになった今、これらのコミットは少し違和感があります。きれいに整えてみましょう!
git filter-repo --message-callback '
return re.sub(b"\(subdir\)\n", b"", message, flags=re.MULTILINE)
'記事をランダムに読む
コメント
ログインしてコメントする