2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Gitのリポジトリを履歴を保持したまま分割する

Last updated at Posted at 2020-03-02

最初は1つのRailsプロジェクトだったのですが、
webpackerを外したことにより、フロントエンドとバックエンドと同じにしている理由もなくなり、
デプロイする工程においてはむしろ作業が増えるので、分割することにしました。
その時のメモです。
少しでも同じ課題を抱えている方の参考になれば。

分割したいプロジェクトをclone

分割用に別途プロジェクトを用意しましょう。
失敗してもリセットできるように念の為

git clone リポジトリURL

プロジェクトから不要リソースを取り除く(コミット履歴も含めて)

git filter-branchコマンドで不要リソースを指定
例)バックエンドのリポジトリを作る場合はフロントエンドのリソースを指定する

# ファイル名の部分に「package.json frontend」といった感じにスペース区切りで記載していく ディレクトリも指定可
git filter-branch --tree-filter 'rm -rf ファイル名' -f --prune-empty

コミット履歴が多いと時間がかかります。
終わったらプロジェクトを見て指定したファイルが消えていることを確認しましょう

分割先の新リポジトリにPush

github等で新しいリポジトリを作成しましょう

git remote set-url origin 新リポジトリURL
git push origin master

これで指定したファイルを除いた形で新リポジトリに引っ越しができました。
これをバックエンドとフロントエンド両方やる形で無事分割ができました!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?