■ はじめに
小ネタ。
https://dk521123.hatenablog.com/entry/2022/02/10/000000
でやったリポジトリを別のGitリポジトリに移動する作業があり、 そのリポジトリ数が、まーまーあって、 今後も同じようなことをやる可能性がありそうなので シェルスクリプト化してみた
目次
【1】前提条件 【2】サンプル
【1】前提条件
[1] 移動元・先でのアクセス権 [2] 移動先のリポジトリは、事前に作っておくこと => ここも含めてシェルスクリプト化してもいい(「※補足」参照)のだが、 とりあえず、今回は手動で、、、
* 以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2023/02/16/225023
【2】サンプル
引数で、転送元・先のURLをもらってって実装より スクリプトを修正した方が利便性がいいと思ったので、 そうやって作った。 => スクリプト内のコメント「!! Change ...」部分を修正する なお、「[2] 移動先のリポジトリは、事前に作っておくこと」も 含めてシェル化したバージョンは以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2023/02/16/225023
move_git.sh
#!/bin/bash # !! Change your source repository URLs declare -a source_repo_list=( "https://github.com/your-account/your-repo-1.git" "https://github.com/your-account/your-repo-2.git" "https://github.com/your-account/your-repo-3.git" ) for source_repo in ${source_repo_list[@]}; do echo "**** Start to copy ${source_repo} ****" # Step1: Git Clone with mirror option git clone --mirror ${source_repo} # Step2: Move to repository directory source_repo_name=$(basename ${source_repo}) echo "Repository name: ${source_repo_name} (e.g. your-repo-1.git)" cd ${source_repo_name} # Step3: Git push with mirror option # !! Change your destination repository URL. destination_git_url="https://github.com/destination/your_${source_repo_name}" echo "Move to ${destination_git_url}" git push --mirror ${destination_git_url} cd .. echo "**** Done for ${source_repo_name} ****" done echo "DONE..."
関連記事
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
リポジトリを別のGitに移行するには
https://dk521123.hatenablog.com/entry/2022/02/10/000000
GitHubのリポジトリをコマンドから作成する
https://dk521123.hatenablog.com/entry/2023/02/16/225023