【PR】を含みます。

プログラミング

Sourcetreeの使い方|コミット・プッシュ・プルの手順

Sourcetreeでコミット・プッシュ・プルする手順を示した図解

Sourcetree(ソースツリー)で手元の変更をGitHubに反映するには、ステージング → コミット → プッシュの3つを順に行います。

このうちコミットとプッシュは別の操作です。コミットは手元のパソコンに記録するところまでで、GitHubに反映されるのはプッシュしたときです。

この記事では、この3ステップを画像付きで解説します。GitHub側の変更を手元に取り込むプルと、コミットやプッシュがうまくいかない場合の対処も扱います。

ブランチ(履歴を枝分かれさせる仕組み)やマージ、競合の解決は扱いません。まずは1本のブランチで、手元の変更をGitHubに反映できる状態を目指します。

Sourcetreeのインストールと、リポジトリの追加が終わっている前提で進めます。

Sourcetreeのインストールがまだの場合は、こちらの記事から進めてください。

あわせて読む
Windows版Sourcetreeのダウンロードとインストール手順をイメージしたアイキャッチ画像

【Windows】Sourcetreeのダウンロードとインストール方法|画像付き

Sourcetreeのインストールでは、Bitbucketの画面を飛ばしてよいのか、GitとMercurialはどちらを選ぶのか、作者の名前(Author Name)には何を入れるのか、といった迷いや ...

手元にあるリポジトリをSourcetreeにまだ登録していない場合は、こちらの記事で追加してから戻ってきてください。

あわせて読む
Sourcetreeで既存のローカルリポジトリを追加する手順を表したイラスト

Sourcetreeに既存のローカルリポジトリを追加する方法

Sourcetreeをインストールしても、PC上で作業中のリポジトリが自動で画面に表示されるわけではありません。手元にあるリポジトリをSourcetreeで管理するには、自分で「追加」する操作が必要で ...

GitHubからのクローンでエラーが出て進めない場合は、こちらの記事で対処法を解説しています。

あわせて読む
Windows SourceTreeでGitHubからクローン出来ない場合の対処方法

【Windows】SourcetreeでGitHubからクローン出来ない場合の対処方法

本記事では、エラー: The host key is not cached for this server:github.comが原因で、SourcetreeにGitHubからクローン出来ない場合の対 ...

コミット・プッシュ・プルの関係

Q. コミットとプッシュは何が違う?

A. コミットは手元のパソコンに変更を記録する操作、プッシュはその記録をGitHubに送る操作です。コミットしただけでは、GitHubには何も反映されません。

ステージング・コミット・プッシュ・プルの4つの操作が、変更をどこからどこへ動かすのかを図にまとめました。

作業ディレクトリ、ステージング・エリア、ローカルリポジトリ、GitHubの4つの間で、ステージング・コミット・プッシュ・プルがどの向きに変更を動かすかを示した図

図の「作業ディレクトリ」は、パソコン上でファイルを編集しているフォルダのことです。リポジトリは変更の履歴をまとめて保存しておく入れ物で、手元のパソコンとGitHub側の両方にあります。手元のほうをローカルリポジトリ、GitHub側のほうをリモートリポジトリと呼びます。

図の「作業ディレクトリ」はSourcetreeの画面では「作業ツリーのファイル」、「ステージング・エリア」は「Index にステージしたファイル」と表記されます。呼び方が違うだけで、どれも同じものを指しています。

ステージングはコミットに含める変更を選ぶ操作

ステージングは、変更したファイルのうち次のコミットに含めるものを選び出す操作です。選んだファイルはステージング・エリアに置かれ、そこに入っているものだけがコミットされます。

変更したファイルが3つあっても、1つだけをステージングすれば、コミットに記録されるのはその1つだけです。

コミットは変更を手元に記録する操作

コミットは、変更内容をリポジトリに記録する操作です。Atlassianの解説では、ほかのソフトでいう「保存」にあたるのがGitのコミットだと説明されています。

ここで記録される先は、自分のパソコンの中にあるリポジトリです。ネットワークにつながっていなくてもコミットできるのは、このためです。

プッシュは手元の記録をGitHubに送る操作

プッシュは、コミットをローカルリポジトリからリモートリポジトリ(GitHubなど)へ送る操作です。

コミットを何件ためてからプッシュしても構いません。逆にいうと、プッシュするまでは、そのコミットは自分のパソコンの中にしかありません。ほかの人と共有されず、バックアップにもなっていない状態です。

プルはGitHubの変更を手元に取り込む操作

プルは、リモートリポジトリの内容を取得して、手元のリポジトリをその内容に合わせて更新する操作です。ほかの人がプッシュした変更や、GitHubの画面上で直した内容を受け取るときに使います。

この記事で確認した環境(Sourcetree 3.4.31)

この記事の画面と表記は、次の環境で確認したものです。

項目この記事の環境
Sourcetree for Windows3.4.31
OSWindows 10
表示言語日本語
確認日2026年8月22日

バージョンは、メニューバーの「ヘルプ」「SourceTree の概要」で確認できます。開いた「バージョン情報」の画面で、「Version」に続く数字が使っているバージョンです。

Sourcetreeのバージョンが表示された画面

この記事に出てくるボタン名は、すべて日本語表示のものです。英語表示で使っている場合は、読み替えながら進めてください。

変更をステージングしてコミットする

手元の変更を記録する作業は、ステージングとコミットの2段階に分かれています。ステージングで選んだ変更だけが、次のコミットに含まれます。

ステージングとコミットの関係は、Atlassianの公式チュートリアルでも詳しく解説されています。

変更の保存(Atlassian公式Gitチュートリアル)

手を動かしながら読む場合は、Sourcetreeに追加済みのリポジトリで、ファイルを1つ以上変更して保存した状態にしておいてください。変更が1つもないと、このあと開くファイルの一覧が空のままになります。

変更したファイルを確認する

左サイドバーの「ワークスペース」の下に、「ファイルステータス」「履歴」「検索」が並んでいます。「ファイルステータス」をクリックすると、変更したファイルの一覧が表示されます。

Sourcetreeのファイルステータス画面。変更したファイルの一覧が表示されている

ファイルの一覧は上下2つに分かれています。上が「Index にステージしたファイル」、下が「作業ツリーのファイル」です。まだステージングしていない変更は下側に並び、ステージングすると上へ移ります。それぞれの見出しの右には、「(2 ファイル)」のように件数が表示されます。

「作業ツリーのファイル (2 ファイル)」に sample1.txt と sample2.txt が並んでいる画面

ファイル名をクリックすると、右側にそのファイルの差分が表示されます。ファイルを選ぶまでは、右側は英語のまま「Select a file to view the diff」と表示されています。

sample1.txt を選び、右側に追加した行の差分が表示されている画面

ステージングする

コミットに含めたいファイルを選んで、インデックスに追加します。

  1. コミットに含めるファイルを選択する

    ファイル名をクリックして選びます。差分を確認したときと同じ操作です。Ctrlキーを押しながらクリックすると、複数のファイルをまとめて選べます。

  2. 「選択をインデックスに追加」をクリック

    ボタンは「作業ツリーのファイル」の見出しの右側にあります。一覧にあるファイルをすべてコミットする場合は、「全てインデックスに追加」をクリックします。

    「選択をインデックスに追加」ボタン

    ファイル名の右端にある「+」をクリックしても、そのファイル1つをステージできます。1ファイルだけステージする場合は、こちらのほうが手早く済みます。

  3. ファイルが「Index にステージしたファイル」へ移ったことを確認する

    選んだファイルだけが上の一覧へ移り、件数の表示も「(1 ファイル)」に変わります。

    sample1.txt だけが上の一覧へ移り、作業ツリー側に sample2.txt が残っている画面

間違えてステージングした場合は、「Index にステージしたファイル」の見出しの右にある「選択をインデックスから除く」で戻せます。すべて戻す場合は「全てインデックスから除く」をクリックします。

ステージ済みのファイルは、ファイル名の右端が「+」から「−」に変わります。この「−」をクリックすると、そのファイルだけが戻ります。いずれの方法でも、ファイルの中身は変わりません。

コミットメッセージを書いてコミットする

ステージングが終わったら、画面下のコミットメッセージ欄にメッセージを入力します。

コミットメッセージ欄に「sample1.txtにテキストを追加」と入力した画面

メッセージには、その変更で何をしたのかを短く書きます。「トップページの見出しを修正」のように、あとで履歴を見たときに何をした変更か思い出せる程度で十分です。

メッセージ欄の下には、「変更をすぐに」で始まるチェックボックス「最後のコミットを上書き (Amend)」の2つが並んでいます。前者はコミットと同時にプッシュするためのものです。

ここではコミットとプッシュを分けて進めるので、2つともチェックを外した状態で右下の「コミット」をクリックします。

コミットすると履歴の画面に切り替わり、コミットが1件増えます。

履歴に「sample1.txtにテキストを追加」が1件増え、短縮コミットIDが表示されている画面

履歴の一覧には、左から「樹形図」「説明」「日時」「作者」「コミット」の列が並びます。いちばん右の「コミット」列には、短縮されたコミットIDが表示されます。いちばん上の「コミットされていない変更があります」は、まだコミットしていない変更(この画面では sample2.txt)を指しています。

これで、変更をローカルリポジトリに記録できました。ただしコミットに付いているラベルは「main」だけで、GitHubにはまだ何も送られていません。

プッシュしてGitHubに反映する

  1. ツールバーの「プッシュ」をクリック

    Sourcetreeのツールバーにあるプッシュボタン
  2. 「対象」列のチェックを確認して、「プッシュ」をクリック

    「プッシュ: リポジトリ名」というダイアログが開きます。「プッシュ先:」で送り先のリモートと、そのURLを確認できます。ここでいうリモートは、送り先のGitHubリポジトリに付いた呼び名で、クローンして作った場合は origin という名前が自動で付きます。

    「プッシュするブランチ」の一覧は、「対象」「ローカルブランチ」「リモートブランチ」「追跡中」の4列です。「対象」列にチェックが入っているブランチだけが送られます。この記事の画面では、最初からチェックが入っていました。

    確認できたら、右下の「プッシュ」をクリックします。

    プッシュのダイアログ。プッシュ先が origin で、main の対象列にチェックが入っている

プッシュで「CredentialHelperSelector」が出たら、チェックを入れて「Select」をクリックする

プッシュを実行すると、「CredentialHelperSelector」という英語のダイアログが出ることがあります。

「Select a credential helper」の下に選択肢が並んでいますが、既定で manager が選ばれています。選び直す必要はありません。

「Always use this from now on」(今後は常にこれを使う)にチェックを入れてから「Select」をクリックしてください。チェックを入れずに 「Select」 を押してもプッシュは実行されますが、manager を使う設定は記憶されません。

CredentialHelperSelector のダイアログ。manager が選ばれ、Always use this from now on にチェックが入っている

なお認証を求められた場合、HTTPSで接続しているとGitHubのログインパスワードは使えません。2021年8月13日以降のGit操作では、パーソナルアクセストークン(PAT)などのトークンを使います。

認証の方式については、GitHubの公式ドキュメントにまとまっています。

GitHubへの認証について(GitHub公式ドキュメント)

SSHで接続する設定は、こちらの記事にまとめています。

あわせて読む
Windows SourceTreeにGitHubアカウントを設定しSSHで接続する方法

【Windows】SourcetreeにGitHubアカウントを設定しSSHで接続する方法

SourcetreeにGitHubアカウントを設定し、SSHで接続する方法を初心者向けに解説。 本記事では、SSHキーの作成から登録、接続確認までを詳しく説明します。 作業環境 Windows 10 ...

プッシュできたか確認する

GitHubでリポジトリのページを開くと、ファイル一覧の上に最新のコミットが表示されます。コミットメッセージと、短縮されたコミットID(この画面では 9632486)がSourcetreeの履歴と同じであれば、反映できています。

GitHubのリポジトリのページ。最新のコミットの行の右端に時計のアイコンがある

まとめて複数のコミットをプッシュした場合は、この行の右端にある時計のアイコンをクリックします。

GitHubのCommitsのページ。コミットが新しい順に2件並んでいる

「Commits」のページが開き、これまでのコミットが新しい順に並びます。Sourcetreeの履歴と見比べれば、送れていないコミットがないかを確認できます。

Sourcetreeの履歴でも確認できます。コミットしただけのときは「main」だけだったラベルが、プッシュ後は「main」と「origin/main」の2つになります。手元とGitHubが同じコミットまで来ている印です。

ここまでで、手元の変更をGitHubに反映できました。

プルしてリモートの変更を取り込む

自分が別のパソコンで作業したり、GitHubのWeb画面でファイルを直したり、ほかの人が同じリポジトリにプッシュしたりすると、GitHub側にだけ新しいコミットがある状態になります。作業を始める前にプルしておくと、GitHub側の最新の状態から作業を始められます。

手を動かしながら読む場合は、GitHubのWeb画面でファイルを1つ書き換えて保存した状態にしておいてください。手元とGitHub側に違いがないと、プルしても何も起きません。

  1. ツールバーの「プル」をクリック

    Sourcetreeのツールバーにあるプルボタン。履歴のコミットには main と origin/main が並んでいる
  2. 取り込み元のリモートとブランチを確認して、「プル」をクリック

    「プル」というダイアログが開きます。上に並ぶ3つの項目の意味は、次のとおりです。

    項目意味操作
    次のリモートからプル:取り込み元のリモート選べる
    プルするリモートブランチ:取り込むブランチ選べる
    次のブランチにプル:取り込み先の手元のブランチ表示だけ

    下の「オプション」枠は、「マージした変更を即座にコミット」だけがオンになっています。表の3つも、オプションも、既定のままで構いません。

    プルのダイアログ。次のリモートからプルがorigin、プルするリモートブランチがmainになっている

プルが終わると、いちばん新しいコミットとしてリモート側のコミットが追加され、「main」と「origin/main」が同じ位置に並びます。

プルした後の履歴。Update sample1.txt が追加された画面

画面の「Update sample1.txt」は、GitHubのWeb画面でファイルを編集したときに自動で付くメッセージです。

プルすると、履歴だけでなく、手元のファイルの中身もリモートの内容に合わせて更新されます。

プッシュが拒否された場合は先にプルする

自分がコミットしている間に、ほかの人が同じブランチにプッシュしていることがあります。この状態でプッシュすると、Gitはリモートの履歴が上書きされるのを防ぐためにプッシュを拒否します。

プッシュが拒否された場合は、先にプルしてリモートの変更を取り込んでから、もう一度プッシュします。

コミットやプッシュがうまくいかない場合の対処

コミットできない・警告が出る場合

ステージしたファイルが0件だとコミットボタンが押せない

「Index にステージしたファイル」が「(0 ファイル)」の場合は、右下の「コミット」ボタンがグレーになり、クリックできません。コミットメッセージを入力してあっても押せません。

コミットメッセージが入力してあるのに、コミットボタンがグレーになっている画面

コミットしたいファイルを「作業ツリーのファイル」から選んで「選択をインデックスに追加」(すべてコミットする場合は「全てインデックスに追加」)をクリックすれば、ボタンが押せるようになります。

メッセージが空のままコミットすると警告が出る

ステージしたファイルが1つでもあれば、コミットメッセージが空でもコミットボタンは押せます。押すと「コミットメッセージが空です」というダイアログが出て、「コミットメッセージが入力されていません。本当に変更に関する説明をつけずにコミットしますか? (お勧めはできません)」と表示されます。

「コミットメッセージが空です」という警告ダイアログ

ここで「OK」を押せば、メッセージなしでもコミットできます。ただし履歴の「説明」列が空のコミットになり、あとから見返したときに何をした変更なのかが分かりません。「キャンセル」で戻って、短くてもメッセージを書いてからコミットすることをおすすめします。

ダイアログの「今後確認しない」にチェックを入れると、次からこの確認は出ません。メッセージを書き忘れた場合に止めてもらえなくなるので、チェックは入れないままにしてください。

プッシュしたのにGitHubに反映されない場合

プッシュの操作が終わったように見えても、GitHubに反映されていない場合は、次の順に確認してください。

  • リモートが設定されていない:手元にあったフォルダをSourcetreeに追加しただけのリポジトリには、送り先のリモートが登録されていません。メニューバーの「リポジトリ」「リポジトリ設定...」を開き、GitHubのリポジトリのURLがリモートとして登録されているかを確認してください。
  • プッシュするブランチにチェックが入っていない:「対象」列のチェックが外れているブランチは送られません。プッシュのダイアログで、送りたいブランチの「対象」列を確認してください。
  • プッシュが拒否されている:リモート側に、手元にないコミットがある状態です。プルしてリモートの変更を取り込んでから、もう一度プッシュしてください。
  • コミットと同時にプッシュして、プッシュだけ失敗している:コミット画面の「変更をすぐに」で始まるチェックボックスを使った場合、コミットは通ってプッシュだけ失敗することがあります。ツールバーの「プッシュ」から、あらためてプッシュしてください。

コミット・プッシュのよくある質問

Q. コミットとプッシュの違いは何ですか?

A. 変更を手元のパソコンに記録するのがコミット、その記録をGitHubなどのリモートリポジトリに送るのがプッシュです。プッシュするまでは、そのコミットは自分のパソコンの中にしかありません。ネットワークにつながっていなくてもコミットできるのは、このためです。

Q. プッシュしたのにGitHubに反映されていません

A. リモートが登録されているか、もう一度プッシュのダイアログを開いて「対象」列にチェックが入っているかを、順に確認してください。どちらも問題ない場合は、リモート側に手元にないコミットがあってプッシュが拒否されている可能性があります。プルして取り込んでから、もう一度プッシュしてください。

Q. コミットを取り消すことはできますか?

A. できます。Sourcetreeには、履歴のコミットを選んで取り消す操作が用意されています。ただし方法が複数あり、どれを選ぶかで結果が変わります。とくにすでにプッシュしたコミットは、手元で取り消してもGitHub側には残ったままです。ほかの人がすでにプルしていれば、その人の手元にも残ります。そのため、この記事では扱いません。

Sourcetreeのボタンが裏で実行しているGitのコマンドは、こちらの記事で一覧にしています。

あわせて読む
Gitコマンド

【メモ】Gitコマンド

Gitの基本的なコマンドを忘れないように整理しました。自分用のリファレンス記事です。 リンク Gitの初期設定 ユーザー名を登録する Command Copy git config --global ...

まとめ

Sourcetreeで手元の変更をGitHubに反映するまでの流れは、次の3ステップです。

  • ステージング:コミットに含める変更を選びます。「全てインデックスに追加」または「選択をインデックスに追加」をクリックします。
  • コミット:メッセージを書いて、変更を手元のリポジトリに記録します。ここまではGitHubに何も送られていません。
  • プッシュ:ツールバーの「プッシュ」から、「対象」列のチェックを確認して送ります。ここで初めてGitHubに反映されます。

GitHub側の変更を手元に取り込むときはプルを使います。プッシュが拒否された場合も、プルして取り込んでから、もう一度プッシュします。

プッシュまで終わったかどうかは、履歴で見分けられます。コミットに「main」と「origin/main」の2つのラベルが並んでいれば、GitHubに反映できています。

この記事を書いた人
もみじのアイコン画像

もみじ

現役フリーランスWebエンジニア。フロントエンド開発を中心に、Web制作、WordPress、業務効率化ツール開発、PHPを用いた機能改修に携わってきました。社内SEとして業務ツール開発や運用保守を担当した経験もあります。

実務や学習を通じて得た知見をもとに、初心者がつまずきやすいポイントや、現場で役立つ考え方をわかりやすく発信しています。

詳しいプロフィールはこちら

-プログラミング
-, ,