リモート

git push

ローカルリポジトリのコミットをリモートリポジトリに送信します。変更を他のメンバーと共有したり、バックアップするために使います。

構文 git push [<remote>] [<branch>]

オプション

フラグ 説明
-u, --set-upstream プッシュ先のリモートブランチをトラッキングブランチとして設定します。次回以降は git push だけで同じ場所へプッシュできます。
--all すべてのローカルブランチをリモートにプッシュします。
--tags タグもあわせてプッシュします。
--force, -f リモートの履歴を上書きして強制プッシュします。共有ブランチでの使用は危険です。
--force-with-lease 他の人が更新していない場合のみ強制プッシュします。--force より安全です。
--delete リモートブランチを削除します(例: git push origin --delete feature/old)。

git push はローカルでのコミットをリモートリポジトリ(GitHub、GitLab など)に送信します。チーム開発では、作業が完了したら git push でメンバーと共有します。

基本的な使い方

# 現在のブランチをリモートの同名ブランチにプッシュ
git push

# リモートとブランチを明示的に指定
git push origin main

# 初回プッシュ時:トラッキング設定と同時にプッシュ
git push -u origin feature/login

よく使うパターン

# 新しいブランチをリモートに作成してプッシュ
git switch -c feature/new-feature
# ... 開発 ...
git push -u origin feature/new-feature

# リモートブランチを削除
git push origin --delete feature/old-feature

# タグをプッシュ
git push origin v1.0.0
git push --tags  # すべてのタグ

注意点

強制プッシュについて

# 危険: 履歴を強制上書き
git push --force

# 推奨: 他の人が更新していない場合のみ実行
git push --force-with-lease

maindevelop など共有ブランチへの強制プッシュは、他のメンバーの作業を壊す可能性があります。自分専用のブランチ以外では原則使わないでください。

リジェクトされたとき

! [rejected] main -> main (non-fast-forward)

このエラーはリモートの方が新しいコミットを持っている場合に出ます。先に git pull でリモートの変更を取り込んでから再度プッシュします。

git pull --rebase
git push