🐈

【Git】初心者向け ローカルリポジトリ作成後にリモートリポジトリを紐づける方法

に公開

はじめに

プロジェクトごとにリポジトリを自分のPC上(VS Code使用)に作って、いざGitHubにプッシュしようとしたところ、プッシュできなかったという経験はないでしょうか?

これはローカル環境にはリポジトリがあっても、リモート環境にリポジトリがない、または、それと紐づいていないことが原因です。

この記事では、ローカルリポジトリを作成した後、リモートリポジトリと紐付けて、以降プッシュできるようにするための手順をわかりやすく解説していきます。

状況

  • フロントエンドの簡易プログラムをVS Codeで作成
  • git init によってGitの管理下に入れる

さっ、ディレクトリも作ってコミットしたので、プッシュしよう!
あれ、プッシュできない。エラーメッセージが発生...

エラーメッセージ

fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

    git remote add <name> <url>

and then push using the remote name

    git push <name>

意味
プッシュ先が設定されていない
コマンドラインでURLを指定するか、リモートリポジトリを以下のように設定してください。
その後、リモート名を使ってプッシュしてください。

原因

これはどのリモートリポジトリにコミットをアップロードすべきかが、Gitが判別できないことが原因です。
つまり、ローカルとリモートが同期できていないことが原因です。
プッシュをするためには、ローカルとリモートが同期している必要があります。

GitとGitHubを連携させる

1. リポジトリの同期

開発者はまず、自分のPC(ローカル)でGitを使い、プロジェクトの変更履歴を管理するローカルリポジトリを作成します。
一方で、GitHub上にはリモートリポジトリと呼ばれる、インターネット上に置かれたリポジトリを作成します。

このローカルリポジトリとリモートリポジトリを、特定のコマンドを使って同期させることで両者が繋がります。

2. リモートリポジトリの設定

ローカルリポジトリに「このリモートリポジトリにプッシュするぞ」と、URLと名前を紐づける設定を行ないます。この設定を行なうことで、GitはどのGitHubリポジトリにアクセスすればよいかを知ることができます。

一般的に、このリモートリポジトリの名前は「origin」とすることが多いです。

ローカルリポジトリを先に作っていた場合の処理手順

1. git init で対象プロジェクトをGitの管理下に入れる

これでローカルに変更履歴を管理するためのリポジトリができます。

2. リモートリポジトリの作成

2-1. GitHubを開き、「New」をクリック

2-2. 「Repository name」に任意の名前を付け、「Create repository」をクリック

2-3. 表示されたURLをコピー

2-4. コマンドを実行
ターミナルで以下のコマンドを入力し、2-3. でコピーしたURLを貼り付けます

git remote add origin <GitHubリポジトリのURL>

2-5. 紐付け完了
これで、ローカルリポジトリとリモートリポジトリの同期ができるようになります。

2-6. (任意)確認

確認コマンド
git remote -v

このコマンドを実行することで、以下のように、紐付けが完了したことがわかります。

origin  https://github.com/Mavo39/frontend-portfolio.git (fetch)
origin  https://github.com/Mavo39/frontend-portfolio.git (push)

補足

紐付けが完了した後の最初のプッシュは、git push origin main のようにブランチ名を指定する必要があります(特にmainブランチの場合)。
これは、ローカルのどのブランチをリモートのどのブランチに紐づけるかを明示するためです。
2回目以降は、単純にgit pushだけで良くなります。

まとめ

GitHubにプッシュできなかった原因が同期できない状態だったことがわかりました。
この記事では、ローカルで作成したリポジトリとリモートで作成したリポジトリを紐づけて同期できるようにするための手順についてまとめました。
解説などではリモートリポジトリを先に作ってから、ローカルリポジトリをクローンする方法をよく目にすると思います。

リモートでリポジトリを作っていないからやり直し?
そうではありません。しっかり別の方法があるため、その点をまとめました。
少しでもお役に立てれば幸いです。

最後までお読みいただき、ありがとうございました。

参考URL

https://www.kagoya.jp/howto/rentalserver/webtrend/vscode/

https://tech-blog.rakus.co.jp/entry/20200529/git

https://umano-ie.com/setup03/

Discussion