Copicode 日本語トップ

ローカルからGitHubへ!git pushでファイルをアップロードする基本手順

前回の記事で、GitHub上に初めてのリポジトリ(保管場所)を作成し、最初のファイルをアップロード(プッシュ)することに成功しました。おめでとうございます!

今回は、その次のステップとして、日常的な開発作業で最もよく使う流れを学びます。具体的には、自分のPC(ローカル)で既存のファイルを編集したり、新しいファイルを追加したりした変更を、どうやってGitHubに反映させるか、という手順です。この「add → commit → push」という一連のサイクルは、Gitを使った開発の基本中の基本なので、ぜひマスターしていきましょう!

確認日とこのページの使い方

確認日: 2026年5月19日。このページは、初回のGitHub接続が終わった後に、日常作業で変更をaddcommitpushする時の確認用です。

まだリポジトリ作成、remote設定、初回git push -u origin mainが終わっていない場合は、先にGitHubに初めてpushする手順を確認してください。このページでは、2回目以降のpush、push失敗時の確認、差分確認、戻し方を中心に扱います。

このページで整理できること

  • 初回push記事と、日常的なpush作業の役割分担
  • git statusgit diffgit logでpush前後を確認する流れ
  • pushに失敗した時、認証、権限、ブランチ、リモート差分を分けて見る順番
  • AIやCodexに相談する時に、秘密情報を伏せた作業メモを作る方法

Gitの基本ワークフロー:3つの「場所」を覚えよう

Gitの操作を理解する上で、まず知っておきたいのが「3つの場所」という考え方です。Gitは、ファイルの変更を記録するまでに、一時的な保管場所を挟みます。これにより、どの変更を記録に残すかを柔軟に選べるようになっています。

この3つの場所の間で、ファイルを移動させていくのがGitの基本的な流れになります。

  1. 作業ディレクトリでファイルを編集・作成する。
  2. git addコマンドで、コミットしたい変更をステージングエリアに上げる。
  3. git commitコマンドで、ステージングエリアにある変更をローカルリポジトリに記録する。
  4. 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に反映されたことが確認できました。

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 fetchgit 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でアップロードする

関連: DB設定を安全に分ける方法VS CodeでCodex作業前に確認すること.gitignoreの使い方

関連して確認したいGitページ