できたぜー
何がしたいか
他所のGitHubアカウントが所持してるリポジトリの内容を受け取るにあたって、自分のアカウントにまるっと移したい。どないすんねんって話。
環境と前提
- GitHub Desktopをインストール済み
- コマンドでGitHubを操作できる
- 複製元の権限をもらってる
コマンド周りの設定は別記事。
作業の流れ
- 複製元のリポジトリをDLする
- 複製したリポジトリのUP先を用意する
- リポジトリにUPする
GitHub自体にデータの移行は無いっぽい(多分)ので、通常のダウンロードとアップロードの手順に一手間加えてアップロード先を変更する感じ。
コピー先の用意
無にアップロードはできないので、中身が空っぽのリポジトリを作る。
名前は何でもいいんだけど、多分コピー元と同じ名前にするとか、同じ名前にコピーである旨を加えるとか、そんな感じにしといたほうがいいと思う。

入れられるところは入れたらいいけど、とりあえず「Repository name」を入れて「Private」にチェックしとけばいいんでないかなって。

登録したらトップページに戻って、左の「Recent Repositories」のリストに追加されてるかを確認。

データのダウンロード
まあ全部引っこ抜けるなら手段はなんでもいいんだけど。
GitHub Desktopを入れていたら結構簡単。
アプリを起動して左上「File」から「Clone respsotpry…」をクリック。

「GitHub.com」タブでアカウントに紐づいてるレポジトリが表示される。
なかったら更新アイコンを押す。

リストからコピー元のレポジトリを選択して「Clone」を押す。
ちょっと待てばレポジトリがまるっとDLされる。
データのアップロード
DLした内容をコマンドでアップする。
ぶっちゃけGitHub Desktopでもできる。DLしたディレクトリを複製してUP先のレポジトリに紐づけて同期させたらいいんだけどね。
ともかく、ここを参考に。

DL先のディレクトリを開いてoriginはコピー先のリポジトリを指定して、アップロードするって流れ。
1行ずつ入力してエンター。
記事にある「$ vim~」はエラーを吐いたので、多分うちの環境に対応してないんだと思う。無視しても大丈夫。
cd C:\Users\【ユーザー名】\Documents\GitHub\【DLリポジトリ名】
git init
git add .
git commit -m "Initial Commit"
git remote rm origin
git remote add origin git@github.com:【ユーザー名】/【UPリポジトリ名】.git
addの前に「git remote rm origin」をやっておかないとエラーを吐いた。
add originはSSHでもHTTPSでも通る。
git remote add origin https://github.com/【ユーザー名】/【UPリポジトリ名】.git
次の内容を入力してエンターすればデータがアップされる。
git push -u origin master
事前にパスフレーズを入力していなければ、ここでパスフレーズの確認が出る。
Enter passphrase for key '/c/Users/【ユーザー名】/.ssh/id_rsa_github':
パスフレーズを入力(表示されない)してエンター。
あと、ポップアップが出てGitHubアカウントのログイン手順を踏むことがある。2回目は出なかったんで初回だけかもしれない。
処理に多少時間がかかるんでちょっとビビると思う。
これで終わり。
遠回りのメリットというか自己弁護
よく分からんで触りだしたのがまず1つ(機能を把握しきれてない)。
一旦ローカルにぶち込むことで元データに影響しない安全面が1つ。
色々開きっぱなで目についたものに飛びついたのが1つ。
直接レポジトリをコピーできたらそれはそれで楽だけど、どの道いじるならローカルに落としておきたいし、過程でそこらへんも済めばいいじゃんねって気持ちとか。
コメント