ポートフォリオ用に社外活動などのスキルアップ活動でのコードを自分のGitHubに入れる必要が出てきた。
この度マナビDXクエスト2023に参加した内容を個人アカウントのリポジトリに複製をしたく調査しました。※データや分析結果の図は守秘義務に基づき除外済みのものを複製します。
GPT4に相談しつつ自分用に修正し手順をまとめました。
1.自分のアカウントでコピー先リポジトリを作成
2.コピー元のディレクトリに移動
cd {コピー元パス}
3.新しいリモートリポジトリを追加 ※secondaryは例です。originにすると名前が衝突してエラーとなるため好きな名前にしてください。
git remote add secondary [新しいGitHubリポジトリのURL]
4.リモートリポジトリを確認
git remote -v
5.異なるリモートにプッシュ
git push secondary master
さらにコミット履歴を削除したい場合
現在進行形でスキルアップ活動をしていて、尚且つ古いコミット履歴を削除したい場合には続けて以下を実行します。
例えば社外秘のデータ分析結果やデータ、APIキーなどがコミット履歴上に残っているケースがあると思います。
1.現在のリポジトリの最新の状態のスナップショットを作成
git checkout --orphan latest_branch
2.新しいブランチにすべてのファイルを追加
git add -A
3.新しいコミットを作成
git commit -am "Initial commit"
4.変更をコピー先に強制的にプッシュ
git push -f secondary latest_branch
5.GitHubで新しいブランチをデフォルトブランチとして設定
「Setting」>「Default branch」で変更
6.masterブランチを削除
7.latest_branchをmasterにリネーム
8.必要であればブランチをコピー元に戻しておいてください。
これでコミットが綺麗なリポジトリができます。
この手法の利点は一つのプロジェクトファイルで管理していることであり、必要に応じてコピー元からプルしてコピー先にプッシュし更新も可能です。