プッシュ(git push)
git push
概要(サマリー)
プッシュ(git push)とは、自分のパソコン(ローカル)で行ったコミットを、GitHubなどのリモートリポジトリに送信・反映するコマンドのことである。
コミットはいわば「ローカルでの保存」だが、そのままでは自分のPC上にしか存在しない。git push をすることで、その変更内容がリモートにアップロードされ、チームメンバーと共有できるようになる。バックアップの意味でも、「作業が終わったらgit pushする」という習慣は非常に重要だ。
詳細解説
git push とは何か
Gitでのコード管理は「ローカル(自分のPC)」と「リモート(GitHubなど)」の2か所で行われる。
ローカルの流れ:
ファイル編集 → git add → git commit(ローカルに保存)
リモートへの反映:
git commit → git push(リモートへ送信)
git push は「ローカルのコミット履歴をリモートに送る」最後のステップだ。プッシュして初めて、GitHub上で変更が反映され、他のメンバーも確認できるようになる。
基本的な使い方
# 基本形(現在のブランチをリモートのoriginに送る)
git push origin ブランチ名
# main ブランチをプッシュする場合
git push origin main
# 現在チェックアウトしているブランチと同名のリモートブランチにプッシュ
git push
origin はリモートの登録名で、git clone したリポジトリでは自動的に設定される。シェルコマンドの別名とは別である。
初めてのブランチをプッシュする場合
新しく作ったローカルブランチを初めてリモートに送る場合は、--set-upstream(または -u)オプションをつける。
git push -u origin feature/login
-u をつけることで、次回から git push だけで同じブランチに送れるようになる。
git push の流れ(全体像)
① ファイルを編集する
② git add . (変更をステージング)
③ git commit -m "メッセージ" (ローカルにコミット)
④ git push origin main (リモートへ送信)
この4ステップが基本的なGitでの作業の流れだ。ブランチを使った開発では、ブランチ名を変えてプッシュし、プルリクエストを作成してレビューを受ける流れになる。
強制プッシュについて
# 強制プッシュ(危険!原則使わない)
git push --force
--force オプションをつけると、リモートの履歴を上書きできる。チームで使っているブランチでは、他の人のコミットを消すことがある。少し安全なのは --force-with-lease で、リモートに自分が知らない新しいコミットがあるときは上書きを拒否する。共有の main では、どちらも原則使わない。
AIコーディングとの関係
AIがコードの修正や新機能の追加を行った後、その変更を保存・共有するためには git push が欠かせない。また、プルリクエストを使ったレビュー文化を持つチームでは、ブランチに変更をプッシュしてからPRを作成するという流れが標準だ。
AIへの効果的な指示の例:
- 「このブランチで作業が終わったのでプッシュしたいです。手順を教えてください」
- 「git push をしたら rejected というエラーが出ました。原因と対処法を教えてください」
- 「feature/login というブランチを新規作成してリモートにプッシュする手順を教えてください」
- 「プッシュ後にプルリクエストを作成する手順をGitHubで説明してください」
よくある勘違い
git push = git commit?
git commit はローカルへの保存、git push はリモートへの送信と、役割が明確に異なる。「コミットしたのにGitHubに反映されない」という状況は、pushを忘れているケースがほとんどだ。
push したら取り消せない?
push 後にコミットを取り消すことは技術的には可能だが、チームで開発している場合は他の人に影響が及ぶため、基本的には慎重に行う必要がある。個人リポジトリや作業中のブランチであれば比較的自由に操作できる。
rejected エラーはなぜ起きる?
git push が rejected になる最も多い原因は「リモートに、自分のローカルにない新しいコミットがある」ケースだ。まず git pull でリモートの変更を取り込む。履歴が分岐していると、今のGitでは pull が fast-forward できずに止まることがある。そのときは git pull --no-rebase でマージするか、git pull --rebase で乗せ直す。コンフリクトが出たら解消してから、もう一度 push する。
まとめ
- git pushとは、ローカルのコミット履歴をリモートリポジトリに送信するコマンドのことである
- pushして初めて変更がGitHub上に反映され、チームと共有できるようになる
- 基本的な流れは「add → commit → push」の3ステップ
- 新しいブランチを初めてプッシュするときは
-u origin ブランチ名オプションが必要 - rejected の多くは、先に git pull でリモートの変更を取り込んでから解消する。分岐しているときはマージか rebase を選ぶ
情報ソース
より詳しくAIに聞いてみよう
- git push と git commit の違いを、初心者でもわかるように説明してください。
- git add → git commit → git push の流れを、具体的な操作手順で説明してください。
- git push が rejected になったときの原因と対処法を教えてください。
- ブランチを新規作成して初めてプッシュするときの手順を教えてください。
- AIコーディングで「コードができたのでGitHubに反映したい」とき、どんな手順で進めればよいですか?