「Gitって、専門用語が多くて理解するのが大変……」
でも、どうせなら暗記ではなくしっかりと理解した上でGitを使いこなせるようになりたいですよね!
このサイトでは、Gitに関する用語を一つずつじっくりと解説しています。
今回はリポジトリの解説です。
Gitのリポジトリとは
リポジトリとは、ソースコードなどのデータを保存する場所のことです。
リポジトリは、次の2つに大きく分かれます。
- ローカルリポジトリ
- リモートリポジトリ
ローカルリポジトリ
ローカルリポジトリは、自分のパソコン上に作成したGitで管理するデータの保管場所です。
ローカルリポジトリとワークツリーの間には、インデックスという変更を確定する前のワンクッションが設けられています。
※ワークツリーとは、実際に作業をするフォルダのことです。

インデックス
インデックスは、データの変更を確定する前に、変更状態を登録しておく場所です。
インデックスというワンクッションがはさまることで、確定させたくないものは、前の状態に簡単に戻すことが出来ます。

ローカルリポジトリ
確定済みのデータはローカルリポジトリに格納されます。
ローカルリポジトリには今までの確定履歴も合わせて記録されています。
リモートリポジトリ
リモートリポジトリとは、複数のユーザーで共有できるリポジトリのことです。
インターネットなどのネットワーク上に作成します。
主にGitHubなどのサービスを利用します。
リモートリポジトリを使用することで、データの共有ができます。

リポジトリ関連のGitコマンド
リポジトリはGitのコマンドによって操作できます。
「コマンドを読むのがつらい!」
そんな方は、この後でVisual Studio Codeでコマンドを使わずに操作をする方法をご紹介しますので、飛ばしてください。
リポジトリ関連のGitコマンドは次の4種類です。
- ローカルリポジトリを作成するためのコマンド
- 変更したファイルをインデックスに登録するためのコマンド
- 変更を確定するためのコマンド
- ローカルリポジトリとリモートリポジトリ間でやりとりするためのコマンド
ローカルリポジトリを作成するためのコマンド
ローカルリポジトリを作成するためのコマンドは、git init
とgit clone
です。
git init
git init
は、ローカルリポジトリを新規作成するコマンドです。
git init
git clone
git clone
は、既に作成されているリモートリポジトリをローカルにコピーするコマンドです。
git clone コピーしたいリモートリポジトリ
具体的な例
git clone ssh://you@example.com/git-project.git
cd git-project
git clone
コマンドを使うと、実行したフォルダの中に、コピー元のリポジトリと同じ名前のフォルダが作成されます。
作成されたフォルダの中に移動することで、リモートリポジトリと同じデータを操作できます。
git clone コピーしたいリモートリポジトリ フォルダ名
リモートリポジトリの後にフォルダ名を指定することで、任意のフォルダ名でリモートリポジトリをコピーすることもできます。

変更したファイルをインデックスに登録するためのコマンド
変更したファイルをインデックスに登録するためのコマンドは、git add
です。
git add
git add
でコミット対象にするファイルをインデックスに登録します。
git add ファイル名・フォルダ名
git add~
の後にファイル名を指定すると特定のファイルをインデックスに登録します。
フォルダ名を指定すると、フォルダに含まれるファイルをインデックスに登録します。

変更を確定するためのコマンド
git commit
変更を確定するためのコマンドは、git commit
です。
git commit -m 変更内容のコメント

ローカルリポジトリとリモートリポジトリ間でやりとりするためのコマンド
ローカルリポジトリとリモートリポジトリ間でやりとりするためのコマンドにはgit push
、git pull
、git fetch
があります。
git push
git push
はローカルリポジトリのデータをリモートリポジトリに反映するコマンドです。
git push リモートリポジトリの名前 反映させたいローカルブランチ名
git pull
git pull
はリモートリポジトリのデータをローカルリポジトリに取り込むコマンドです。
git pull リモートリポジトリの名前 取り込みたいリモートブランチ名
git fetch
git fetch
はリモートリポジトリの最新状態を確認するためのコマンドです。
git fetch
git fetchが行うのは変更の確認だけでデータの取り込みは行いません。

コマンドのまとめ
コマンド | 操作内容 |
---|---|
git init | ローカルリポジトリを新規作成する |
git clone コピーしたいリモートリポジトリ | リモートリポジトリをローカルにコピーする |
git add ファイル名・フォルダ名 | 変更したファイルをインデックスに登録する |
git commit -m 変更内容のコメント | 変更を確定する |
git push リモートリポジトリの名前 反映させたいローカルブランチ名 | ローカルリポジトリのデータをリモートリポジトリに反映する |
git pull リモートリポジトリの名前 取り込みたいリモートブランチ名 | リモートリポジトリにあるデータを取り込む |
git fetch | リモートリポジトリの最新状態を確認する |
Visual Studio Codeでの操作方法
コマンドでの操作と同じ操作を、Visual Studio Codeの画面上で行ってみましょう。
記事執筆時のVisual Studio Codeのバージョンは「1.67.2」です。
参考:Version Control in Visual Studio Code
ローカルリポジトリを作成する
リポジトリの新規作成(git init)

リポジトリを新規作成するには、サイドバーの「ソース管理」から、「リポジトリを初期化する」をクリックします。
コマンドのgit init
と同じ動作です。
リモートリポジトリのコピー(git clone)

リモートリポジトリのコピーを行うためには、フォルダを開いていない状態で、ソース管理から「リポジトリのクローン」をクリックします。

コピー元のリモートリポジトリのURLを入力するように求められるので入力します。

コピー先のフォルダを指定します。
コマンドのgit clone
と同じ動作です。
変更したファイルをインデックスに登録する(git add)

変更したファイルをインデックスに登録するには、サイドバーの「ソース管理」から、変更 > 変更をステージする(+マーク)をクリックします。
コマンドのgit add
と同じ動作です。
変更を確定する(git commit)
※操作を行う前に、変更をインデックスに登録しておく必要があります。

インデックスに変更したファイルを登録するには、サイドバーの「ソース管理」から、変更内容のコメントを入力し、コミット(チェックマーク)をクリックします。
コマンドのgit commit
と同じ動作です。
ローカルリポジトリとリモートリポジトリ間でやりとりする
確定したデータをリモートリポジトリに反映する(git push)
※操作を行う前に、変更を確定する必要があります。
確定したデータをリモートリポジトリに反映する操作は2種類あります。
- ソース管理から「変更の同期」をクリックする
- 画面の下側、円形の矢印のアイコンをクリックする

ソース管理から「変更の同期」をクリックします。

画面の下側、円形の矢印のアイコンの横に↑(上向き矢印)が表示されているときに矢印アイコンをクリックします。
コマンドのgit push
と同じ動作です。
リモートリポジトリにあるデータを取り込む(git pull)

リモートリポジトリにあるデータを取り込むには、画面の下側、円形の矢印のアイコンの横に↓(下向き矢印)が表示されているときに矢印アイコンをクリックします。
コマンドのgit pull
と同じ動作です。
リモートリポジトリの最新状態を確認する(git fetch)

リモートリポジトリの最新状態を確認するには、画面の下側、円形の矢印のアイコンをクリックします。
コマンドのgit fetch
と同じ動作です。