Gitの各領域(working directory,staging area,repo)とコマンドの関係図

Gitの各領域とコマンドの関係図を掲載します。

Gitの領域について

作業ディレクトリ(working directory)

実際にコードを修正する作業領域。ローカルのディレクトリを開いて見えるコードやファイルはこの作業ディレクトリです。git addコマンドでステージング領域へファイルを登録します。

ステージング領域(staging area/index)

Gitには「ステージング領域」または「インデックス」と呼ばれるものがあります。これは、コミットを完了する前にコミットをフォーマットして確認できる中間領域です。git commitコマンドでローカルリポジトリへステージング領域にあるファイルを一括登録します。

ローカルリポジトリ(local repository)

ローカルのGitリポジトリです。コミットごとの変更した差分が保存されます。git pushコマンドでリモートリポジトリへコミット内容を送信します。

リモートリポジトリ(remote repository)

ローカルリポジトリの変更点を保持します。一般的には、GitHub、GitLab、BitbucketといったGitのホスティングサービス上に構築され、複数の開発者がリモートリポジトリをコピー(clone)元として、ローカルリポジトリを構築します。

git addを省略してgit commtする

“git add”を省略して”git commit”を行うには、オプション”-a”をつけます。

git addを省略してcommitする

git commt -m "ignore git add" -a

“git add .”を入力するか、オプション”-a”をつけるかの違いとなります。

※オプション”-m”はcommtメッセージ

Git 特定のファイルをトラッキング対象外にする(ステージング領域(INDEX)から削除する)

git rm コマンドを利用して、ステージング領域(インデックス)のファイルを削除します。作業コピーのファイルを残したい場合、オプション”–cached”をつけて、実行します。

git rm --cached file_name

gitのステージング領域からの取消しについて

上記コマンドでは、git add でステージング領域(インデックス)にエントリしたファイルを削除します。

作業ツリー(ローカルファイル)も併せて削除したい場合は、–cachedオプションなしで実行します。

下記、gitコマンドとファイルの流れの中で、「作業ツリー」→「ステージング領域」の操作を取り消しできます。

gitコマンドとファイルの流れ

リモートリポジトリ

    ↑ push

ローカルリポジトリ

    ↑ commit

ステージング領域(インデックス)

    ↑ add   ・・・ここを取り消す

作業ツリー(ローカルファイル)