2
1

[学習メモ] git clone でリポジトリを取得して、自分のリポジトリにpushするまでの流れ

Posted at

目的

学習用の更新できないリポジトリをクローンし、自分のリポジトリに反映する方法整理する為作成しました。
本来なら修正した内容のプルリクエストを作成してマージする流れなので、自分用のメモです。

以下を整理します

  • クローンとは何なのか
  • クローン実行後の状態
  • push先を変更する理由

クローンとは何なのか

リモートリポジトリの全内容を、新規でローカルリポジトリにそのままコピーしてくること
コードなどのファイル、コミット履歴、ブランチ情報などが含まれている

フォークを使ったクローンとの違い、どちらを使うか

フォーク

コピー元リポジトリを自分のリモートリポジトリにコピーすること。学習目的以外にOSSの改修でも使用される。
フォーク後、ローカルへクローンすることでpush先が自分のリポジトリに切り替わる。

利点 ⇛ push先のoriginを変更する作業が不要になる
注意点 ⇛ フォークしたことがクローン元に通知される



今回は通知が不要なのでフォークしない方法で作業しました

クローン実行

1. GitHub上の操作:クローンしたいリポジトリのアドレスをコピー

  1. クローンしたいリポジトリのページに移動し、ファイルの一覧の上にある「<> Code」をクリック
  2. 「HTTPS」タグのURLの右側をクリックしてコピー

2. ターミナル上の操作:クローン実行

  1. クローン先のディレクトリに移動
  2. リポジトリをローカルリポジトリにクローン
$ git clone https://github.com/他のユーザー/他のリポジトリ.git

確認: git clone実行後の状態

  • ローカルリポジトリ(.gitディレクトリ)が作成され、コミット履歴、ブランチ情報などがコピーされる
  • クローン元のリポジトリ名のついたディレクトリが、内容とともにコピーされる
  • クローン元のリモートリポジトリが、originという名前でfetch元とpush先に登録される
$ git remote -v
origin  https://github.com/他のユーザー/他のリポジトリ.git (fetch)
origin  https://github.com/他のユーザー/他のリポジトリ.git (push)

分かった事

このままpushしたら内容がクローン元に反映されてしまうので、push先を変更する。
コミット後の履歴に知らない履歴があっても、クローン元の履歴をローカルにコピーした為であり、push先を変えればクローン元に反映されない。

3. GitHub上の操作:自分のgithubにリポジトリを作成

  1. マイページのヘッダー右上隅で「+」を選択し、「New repository」をクリック
  2. 「Repository name」を作成
  3. 画面下、緑色の「Create repository」をクリック

4. ターミナル上の操作:作成したoriginをpush先に変更

$ git remote set-url origin https://github.com/自分のユーザー名/自分のリポジトリ名.git 

リモートリポジトリのpush先を変更するコマンド。
push先のoriginを、クローン元のリモートリポジトリから自分のリモートリポジトリに変更する。

確認:push先を変更する理由

ここで代わりに

$ git remote add origin

とすると、originは既に登録済みと言われてエラーになる

error: remote origin already exists

上記は新規にリモートリポジトリを追加するためのコマンドで、クローン元をoriginに登録済みであることが原因

5. push先が変更されていることを確認

$ git remote -v
origin  https://github.com/自分のユーザー名/自分のリポジトリ名.git(fetch)
origin  https://github.com/自分のユーザー名/自分のリポジトリ名.git (push) 

6. コードを修正

7. 変更をリモートリポジトリに反映

$ git add .
$ git status 
$ git commit -m "修正内容のコミットメッセージ" 
$ git log 
$ git push origin main 



参照URL

https://docs.github.com/ja/repositories/creating-and-managing-repositories/cloning-a-repository
https://docs.github.com/ja/get-started/getting-started-with-git/managing-remote-repositories
https://qiita.com/nt-7/items/c5ea999a2638e03ee418
https://docs.github.com/ja/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo

2
1
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
1