Git

【Git】ローカルリポジトリをリモートにプッシュする方法

こんにちは!ともです(@_tomo_engineer)!

今回はGitでローカルリポジトリをリモートリポジトリにプッシュ(push)する方法について書きます。

今まではSourceTreeとかのGUIツールを使ってたんですが、これからはコマンドラインからパパッとやりたいなと思いまして勉強中です。

そんな中、リモート(Git Hub)に上げとこうと持ったんですがコマンドが分からなかったので調べて見ました。

リモートリポジトリの準備

GitHubでアカウントを作成してリポジトリを作成します。

New Repositoryで新しいリポジトリを作成しておきます。今回はchatappというリポジトリを作成しました。

ローカルリポジトリをリモートにプッシュ

すでにあるローカルリポジトリが存在しているとします。

git remote -v

上記のコマンドでリモートとの状況が分かります。まだリモートと対応付けていない場合、このコマンドを押しても何も出力されません。

次に、ローカルリポジトリとリモートリポジトリを対応つけるのはremote addコマンドです。

git remote –helpで確認して見ました。

git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>

必須なのは<name>と<url>だと分かります。

git remote add chatapp https://github.com/tomo77777/chatapp.git

これでリモートとの対応が取れました。<url>をchatappと名付けました。

git push chatapp

pushコマンドでchatappと命名したリモート先にプッシュして見ます。

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

git push –set-upstream chatapp master

このようなエラーがでると思います。

言われた通り

git push --set-upstream chatapp master

–set-upstreamオプションを付ける必要があるようです。

あるブログによると以下の様に説明されていました。

このオプションをつけるとローカルリポジトリの現在のブランチの上流をorigin master に規定したことになる。

では上流ブランチとは何を指すのでしょうか?

「上流ブランチ(Upstream branch)」とは、あるローカルブランチが、履歴を追跡するように設定したリモートブランチの事を指します

引用元:開発ブログ<開発用語:上流ブランチとは>

この説明はイメージを膨らませる事ができました。

–set-upstreamにオプションによりchatapp(リモート)はローカルを追跡するように設定された上流ブランチになる訳ですね。

ちゃんとローカルリポジトリを追跡しろよ!

って事だと思います。

git push -u chatapp master

と短縮する事もできます。

一度上流ブランチに設定すれば、以降は設定する–set-upstreamを指定する必要はないです。

これでリモートにプッシュが完了します。

まとめ

今回はローカルリポジトリをリモートにプッシュする方法を調べて見ました。

  • git remote -v (状況確認)
  • git remote add name url (ローカルとリモートを対応つけ)
  • git push –set-upstream <remote> <local> (上流ブランチに設定してプッシュ)

これで気軽にpushできる様になりました。またもう少し分かってきたらブログにしたいと思います。