最初におさえておきたい仕組みや基本知識を解説していきます。最初にこれを見ておけば、全体の使い方のイメージが把握できます。いう話はこちらに書きました。まとめリポジトリとは?まずはリポジトリの話から。リポジトリは、プログラムの変更履歴を保存する場所です。プログラムを管理する場合は、まずリポジトリを作成して、その中にプログラムの変更履歴を記録していくことになります。ローカルリポジトリ・リモートリポジトリリポジトリには、ローカルリポジトリとリモートリポジトリの2種類があります。ローカルリポジトリは、手元のパソコン内などにある各自が持っているリポジトリのことです。リモートリポジトリは、外部のサーバーなどにある複数人で共有して使うためのリポジトリのことです。ふだん各自でプログラムを修正する場合には、ローカルリポジトリの中に変更履歴を保存していくことになります。それをリモートリポジトリに送信して保存しておくことができます。これを「push(プッシュ)する」と言います。リモートリポジトリに保存された変更履歴は、他の人が自分のローカルリポジトリに持ってくることもできます。これを「pull(プル)する」と言います。複数人で開発する場合は、各自のローカルリポジトリに変更履歴を保存していき、最終的にリモートリポジトリにみんなの変更が集められるというイメージになります。プログラムをリモートリポジトリへ反映するまでの流れ修正したプログラムをローカルリポジトリに保存し、それをリモートリポジトリへ反映させる流れを確認していきましょう。おおまかに言うと、ワークツリー、インデックス、ローカルリポジトリ、リモートリポジトリという領域に順番に反映していく形になります。管理しているディレクトリ以下のファイルが置いてある領域は、「ワークツリー」と呼ばれます。ここにあるファイルを修正していきます。コマンドを使って修正したファイルを指定すると、「インデックス(ステージング)」という領域に反映されます。インデックスには「これからローカルリポジトリに変更履歴を登録したいファイル」を追加します。複数のファイルをまとめて追加することができます。コマンドを実行すると、インデックスにあるファイルの変更内容が「ローカルリポジトリ」に反映されます。この作業を「コミットする」と言います。コミットを行うと、変更したユーザーの名前や変更日、変更したファイル、変更前と変更後のプログラムの差分が記録されます。開発者が自分一人の場合は、ここまでの作業を繰り返し行う形でも問題ありません。コマンドを使って、ローカルリポジトリの内容をリモートリポジトリに反映させます。行うという流れになります。それぞれのコマンドについては、この後の講座で詳しく学んでいきます。ブランチという作業履歴を枝分かれさせるための機能があります。変更をコミットすると、初期の状態では「master」という名前のブランチにコミットされます。競合してしまって開発が進めにくくなることがあります。そのため、「master」ブランチから分岐させて、新たなブランチを追加し、そのブランチ上にコミットしていくことが多いです。分岐したブランチにコミットした内容は、他のブランチとまとめることができます。このことを「merge(マージ)する」と言います。まとめて入れる(マージする)といったことができます。ブランチはそれぞれのリポジトリ上で作成することができます。ローカルリポジトリで作成したブランチをリモートリポジトリに反映したり、リモートリポジトリに存在しているブランチをローカルリポジトリに持ってくることもできます。仕組みや基本知識でした!ここまでの内容をまとめておきます。リポジトリは、プログラムの変更履歴を保存する場所。外部のサーバーなどにある複数人で共有して使うためのリポジトリのこと。ローカルリポジトリの中の変更履歴を、リモートリポジトリに送信して保存しておくことを「push(プッシュ)する」、リモートリポジトリに保存された変更履歴を、自分のローカルリポジトリに持ってくることを「pull(プル)する」と言う。プログラムをリモートリポジトリへ反映するときは、ワークツリー、インデックス、ローカルリポジトリ、リモートリポジトリという領域に順番に反映していく。ブランチという機能を使って、作業履歴を枝分かれさせることができる。フリーランスエンジニア。複数のスタートアップ企業でウェブサービス開発に参画。その後、会社創業期の開発マネージャーの経験を経てフリーランスに。プログラムや文章を書いて暮らしています。