ローカルからGitHubへ!git pushでファイルをアップロードする基本手順
前回の記事で、GitHub上に初めてのリポジトリ(保管場所)を作成し、最初のファイルをアップロード(プッシュ)することに成功しました。おめでとうございます!
今回は、その次のステップとして、日常的な開発作業で最もよく使う流れを学びます。具体的には、自分のPC(ローカル)で既存のファイルを編集したり、新しいファイルを追加したりした変更を、どうやってGitHubに反映させるか、という手順です。この「add → commit → push」という一連のサイクルは、Gitを使った開発の基本中の基本なので、ぜひマスターしていきましょう!
確認日とこのページの使い方
確認日: 2026年5月19日。このページは、初回のGitHub接続が終わった後に、日常作業で変更をadd、commit、pushする時の確認用です。
まだリポジトリ作成、remote設定、初回git push -u origin mainが終わっていない場合は、先にGitHubに初めてpushする手順を確認してください。このページでは、2回目以降のpush、push失敗時の確認、差分確認、戻し方を中心に扱います。
このページで整理できること
- 初回push記事と、日常的なpush作業の役割分担
git status、git diff、git logでpush前後を確認する流れ- pushに失敗した時、認証、権限、ブランチ、リモート差分を分けて見る順番
- AIやCodexに相談する時に、秘密情報を伏せた作業メモを作る方法
Gitの基本ワークフロー:3つの「場所」を覚えよう
Gitの操作を理解する上で、まず知っておきたいのが「3つの場所」という考え方です。Gitは、ファイルの変更を記録するまでに、一時的な保管場所を挟みます。これにより、どの変更を記録に残すかを柔軟に選べるようになっています。
- 作業ディレクトリ (Working Directory): あなたが実際にファイルを開いて編集している、PC上のフォルダそのものです。
- ステージングエリア (Staging Area): コミット(セーブ)したい変更内容を、一時的に置いておく場所です。「次のセーブポイントに含める変更リスト」のようなイメージです。
- ローカルリポジトリ (Local Repository): ステージングエリアにある変更内容を、正式なセーブポイント(コミット)として記録・保管する場所です。あなたのPC内の`.git`フォルダに、これまでの全履歴が保存されています。
この3つの場所の間で、ファイルを移動させていくのがGitの基本的な流れになります。
- 作業ディレクトリでファイルを編集・作成する。
git addコマンドで、コミットしたい変更をステージングエリアに上げる。git commitコマンドで、ステージングエリアにある変更をローカルリポジトリに記録する。git pushコマンドで、ローカルリポジトリの記録をGitHub(リモートリポジトリ)に送信する。
では、実際にこの流れを体験してみましょう!
実践!ファイルを変更・追加してGitHubに反映させる
前回の記事で作成した`my-first-repo`フォルダを使って作業を進めます。まだ開いていない方は、ターミナル(またはGit Bash)でそのフォルダに移動してください。
cd my-first-repo
ステップ1: 既存ファイルを編集し、変更を確認する (git status)
まず、前回作成した`index.html`をお好みのエディタで開き、中身を書き換えてみましょう。
例: `Hello, GitHub!` を `Hello, World!` に変更して保存します。
ファイルが変更されたことをGitが認識しているか、`git status`コマンドで確認します。これは「今のプロジェクトの状態はどうなってる?」とGitに尋ねるコマンドです。
git status
`modified: index.html`のように、`index.html`が変更されたことが報告されるはずです。
ステップ2: 新しいファイルを追加する
次に、新しいCSSファイルを作成してみましょう。以下のコマンドで、簡単なCSSファイルを作成します。
echo "h1 { color: steelblue; }" > style.css
この状態で再度`git status`を実行すると、今度は「追跡されていないファイル (Untracked files)」として`style.css`が表示されます。これは、Gitがまだこのファイルの存在を知らない、という意味です。
git status
ステップ3: 変更をステージングする (git add)
「変更した`index.html`」と「新しく作った`style.css`」の両方を、次のセーブポイントに含めるためにステージングエリアに上げましょう。`git add`コマンドは、変更されたファイルにも、新しいファイルにも使えます。
一般的には、以下のコマンドで作業ディレクトリ内のすべての変更(新規追加・修正)を一度にステージングします。
git add .
この後、もう一度`git status`を実行すると、すべての変更が「Changes to be committed(コミットされるべき変更)」として緑色で表示され、ステージングが完了したことがわかります。
ステップ4: 変更をコミットする (git commit)
ステージングエリアに上げた変更内容を、一つのセーブポイントとしてローカルリポジトリに記録します。今回何をしたのかが分かるように、具体的なメッセージを付けましょう。
git commit -m "index.htmlのテキストを更新し、style.cssを追加"
ステップ5: GitHubにプッシュする (git push)
最後に、ローカルリポジトリに作成した新しいコミットを、GitHub上のリモートリポジトリに送信(プッシュ)します。これで、あなたの変更がチームメンバーにも共有され、安全なバックアップとなります。
2回目以降のプッシュでは、最初の`-u`オプションは不要です。
git push origin main
確認と注意点
プッシュが完了したら、GitHubのリポジトリページをブラウザで再読み込みしてみてください。`style.css`が追加され、`index.html`の最終更新日時やコミットメッセージが変わっているはずです。これで、変更内容が正しくGitHubに反映されたことが確認できました。
- `git status`を癖にしよう: 何か作業をする前や、コミット・プッシュする前には、必ず`git status`で現在の状態を確認する癖をつけると、意図しないファイルの追加や変更を防げます。
- コミットは意味のある単位で: 「ヘッダーのデザインを修正」「フッターのリンクを追加」など、関連する変更を一つのコミットにまとめるように心がけましょう。履歴がきれいになり、後から変更を追いやすくなります。
push前に見るべき3つの確認
git pushは便利ですが、間違ったファイルを含めたまま実行すると、その変更もGitHubへ送られます。特にAIにコード修正を頼んだあとや、Webサイトの公開前には、次の3つを確認してからpushします。
# 変更されたファイル一覧を見る
git status
# まだステージしていない差分を見る
git diff
# コミットに入る予定のファイルを見る
git diff --cached --name-only
push前に止まるべき例
- パスワード、APIキー、DB接続情報が差分に見える
- 自動生成ログや一時ファイルが混ざっている
- まだ動作確認していないPHPや設定ファイルが入っている
- 公開用ではないメモや作業途中ファイルが含まれている
AIに修正してもらったコードをpushする場合は、差分確認と公開前チェックをセットにします。公開前の考え方はAIコード修正と公開前チェックの入口から確認できます。
GitHubへpushしても本番サイトは自動で変わらない
初心者が混同しやすい点ですが、git pushは「GitHubへ履歴を送る操作」です。レンタルサーバーやFTPで公開しているサイトでは、pushしただけで本番サイトのHTMLやPHPが自動更新されるとは限りません。
役割を分けて考える
- GitHub:変更履歴、バックアップ、共同作業の場所
- ローカルPC:編集、テスト、構文チェックをする場所
- レンタルサーバー:実際にユーザーが見る公開場所
- FTPやデプロイスクリプト:ローカルの変更を公開場所へ送る手段
ロリポップなどへFTPで公開している場合は、push後に必要なファイルをサーバーへアップロードし、公開URLで確認するところまでが一連の公開作業です。公開後に反映されない場合は、Web公開トラブル解決の入口でアップロード先、キャッシュ、URLを順番に確認します。
git pushできないときの確認順
pushでエラーが出ても、すぐにやり直し続けるより、エラーの種類を分けて見るほうが早く解決できます。
よくある原因
Authentication failed:GitHubの認証情報、トークン、ログイン状態を確認するPermission denied:そのリポジトリへ書き込む権限があるか確認するrejected:GitHub側に自分が持っていない新しいコミットがある。先にpullが必要な場合があるsrc refspec main does not match any:ブランチ名や初回コミットの有無を確認する
ブランチ名や作業の分け方で迷う場合は、Gitブランチ運用の基本を確認すると、mainへ直接pushしてよい場面と分けたほうがよい場面を判断しやすくなります。
pushに失敗した時の確認表
エラー文を見ずにコマンドを変えると、余計に状態が分かりにくくなります。まずはエラーの種類を分けます。
| エラーや状態 | 先に確認すること | よく見るコマンド |
|---|---|---|
| 認証エラーが出る | GitHubのログイン、Personal Access Token、Credential Manager | git remote -v |
| 権限がないと言われる | 自分のGitHubアカウントがそのリポジトリへ書き込めるか | git remote -v |
rejected で止まる |
GitHub側に自分のPCにないコミットがあるか | git fetch、git status |
| ブランチ名が違う | mainなのかmasterなのか、今いるブランチはどこか |
git branch --show-current |
| push後にGitHubで変わらない | push先リポジトリ、ブランチ、GitHub画面で見ているブランチ | git log --oneline -5 |
差分確認、リモート確認、戻し方の整理
push前後で迷った時は、いまの変更、直近の履歴、GitHub側との差を分けて見ます。戻す操作は影響が大きいので、状況を確認してから実行します。
# いま変更中のファイルを見る
git status
# まだcommitしていない差分を見る
git diff
# commit済みの直近履歴を見る
git log --oneline -5
# GitHub側の最新情報を取得する
git fetch
# いまのブランチ名を見る
git branch --show-current
# push先URLを見る
git remote -v
間違ってステージしただけならgit restore --staged ファイル名、まだcommit前の編集を戻すならgit restore ファイル名で戻せます。すでにpushした履歴を戻す場合は、基本的にgit revertで「打ち消すcommit」を作る方が安全です。
AI/Codexに相談する時のメモ
pushの相談では、エラー全文、実行したコマンド、git statusの状態が重要です。ただし、トークン、パスワード、非公開URL、秘密ファイルの中身は貼らないでください。
git pushの問題を切り分けたいです。
やりたいこと:
実行したコマンド:
表示されたエラー:
確認済み:
- git status:
- git branch --show-current:
- git remote -v の種類:
- git log --oneline -5:
- 初回push済みか:
- GitHubで見ているブランチ:
相談したいこと:
- push前にcommitできているか
- push先ブランチが合っているか
- rejected の時にpull/fetchが必要か
- 戻すならrestore/revertのどちらが安全か
伏せる情報:
- GitHubトークン
- パスワード
- 秘密鍵
- 非公開リポジトリURLの必要以上の情報
- .envやDB設定ファイルの中身
FTP公開サイトでpush前に確認すること
GitHubへpushする前に、DBパスワードやAPIキーなどの秘密情報が入っていないか確認します。FTPで公開するサイトでも、GitHubはバックアップとして使える一方、公開リポジトリに秘密情報を上げると危険です。
git status
git diff --cached --name-only
db_config.local.phpはGitHubに上げない.gitignoreに秘密ファイルを追加する- コミット前に差分を見る
- push後、必要なファイルだけFTPでアップロードする