はじめに
この記事は GitHub 初心者向けの記事になります。
正直、自分は Git のコマンドの意味等をしっかり把握しているわけではないので、「ここ違うだろ」とか「それはこうやるんだよ」とか「ここ誤字!」等あれは指摘していただければありがたいです。
こんな人に読んでほしい
GitHub に公開されているリポジトリを自分のローカルに持ってきて、デバッグしたり、いじってみたいときありますよね。
そんな時、「せっかくだし Git に慣れるためにもソースコードをいじって commit や push したい」と思う人もいるのではないでしょうか。
でも fork を使うと commit & push した際に、オリジナルのリポジトリを管理する開発者に通知が行ってしまうので fork は使えないしな~と。
参考 リポジトリのcloneとforkの違い - Qiita
そこで今回紹介するは fork せずに、公開されているリポジトリを自分のリモートリポジトリに設定する方法です。
概要
大まかな流れとしては下記の流れです。
- 公開されているリモートリポジトリをローカルリポジトリに clone
- 自分の GitHub アカウントのリモートリポジトリに空のリポジトリを作成
- push 先のリモートブランチを自分のリモートリポジトリのブランチに切り替え
- リモートブランチに push
1. 公開されているリモートリポジトリをローカルリポジトリに clone
-
clone したい GitHub のリモートリポジトリへ
-
下記のようなポップアップが表示されるので赤枠で囲ってあるボタンをクリックする -> URL (https://XXXXXX.git) がコピーできる
-
ソースコードを保存したいローカルディレクトリ(自分の PC)で シェル(コマンドプロンプト等)を開く
-
下記のコマンドを打つ
${URL} には 1-4 でコピーした URL (https://XXXXXX.git) が入るgit clone ${URL}
-
ここまででリモートリポジトリのソースなどの各種ファイルが自分の PC にコピーされる
2. 自分の GitHub アカウントのリモートリポジトリに空のリポジトリを作成
上記のコードを保管するための空のリポジトリを作成します
-
上記の画面のオレンジ枠で囲ってある New というボタンを押すと新しいリポジトリが作成できます
-
下記画像の赤枠で囲ってある部分にリポジトリ名を入力し、一番下のオレンジ枠で囲っている Create repository ボタンを押せばリポジトリが作成できます。リポジトリの名前はわかりやすいように公開されているものリポジトリ名と同じがいいと思います。そのほか公開(public)、非公開(private)等の設定は必要に応じて非公開にしてください。
3. push 先のリモートブランチを自分のリモートリポジトリのブランチに切り替え
3 の作業はすべてシェルで行います。そのため特に画像等はありません。
- 現在のリモートブランチの確認
上記のコマンドを実行すると下記のようなリモートブランチの情報が表示されると思います。
git remote -v
このとき、表示されるのはコピー元のブランチの情報のはずです。origin https://github.com/XXXXX.git (fetch) origin https://github.com/XXXXX.git (push)
- 2-3 で作成した自分のリモートリポジトリの URL をコピー(コピー方法は 1-3 を参考に)
- 下記コマンドを実行しリモートブランチを切り替える
git remote set-url origin https://github.com/YYYYYY.git
- リモートブランチの確認
3-1 と同様のコマンドを実行
git remote -v
このとき表示されるのは自分のリモートリポジトリの URL のはず
origin https://github.com/YYYYY.git (fetch)
origin https://github.com/YYYYY.git (push)
4. リモートブランチに push
- 下記コマンドを実行
git push origin main
実行した後に GitHub の該当リポジトリを確認するとファイル等が格納されているはずです。
終わりに
業務で使わない新しい言語を学ぶときや自分のコーディング技術を向上させる際に GitHub のコードを読んだり、いじってみたりするのは大切だと思います。
そんな最初の一歩を手助けできる記事になれば幸いです。
そのほかつまずいた際は下記を参考にしてください。
クローンエラーのトラブルシューティング - GitHub Docs
git clone 出来ない( ノД`)…おぉー!出来たー( ;∀;)!!! - Qiita