原文: How to Undo a Git Add
翻訳・翻案: Yoko Matsuda

コミット前の git add を取り消すには、git reset <file> を実行します。すべてのファイルの変更を対象とする場合には git reset を実行します。

古いバージョンの Git では、それぞれ git reset HEAD <file>git reset HEAD というコマンドでした。この変更は Git 1.8.2 で対応されました。

その他のよく使われる Git の操作については下記の記事を参照してください。

Git に関する予備知識

Git プロジェクトの 3 つのセクションを理解する

Git プロジェクトには以下 3 つの重要なセクションがあります。

  1. Git ディレクトリ
  2. ワーキングディレクトリ (またはワーキングツリー)
  3. ステージングエリア

Git ディレクトリ (YOUR-PROJECT-PATH/.git/ にあるディレクトリ) は、Git がプロジェクトを正確に追跡するために必要なすべてのものが保存されている場所です。その中には、メタデータと、圧縮されたプロジェクトファイルの各バージョンを含むオブジェクトデータベースが含まれます。

ワーキングディレクトリは、ユーザーがプロジェクトに対してローカルで変更を行う場所です。ワーキングディレクトリは、Git ディレクトリのオブジェクトデータベースからプロジェクトのファイルを取得し、ユーザーのローカルマシンに配置します。

ステージングエリアは、次のコミットに含める予定の情報を保存しているファイルです (「index」「stage」「cache」とも呼ばれます)。コミットとは、ステージングエリアに追加された変更を保存するよう Git に伝えるタイミングです。Git はその時点のファイルの状態のスナップショットを撮り、スナップショットを Git ディレクトリに永続的に保存します。

この 3 つのセクションにより、ある時点のファイルの状態は主に以下 3 種類のいずれかの状態を取ります。「変更済 (modified)」「ステージ済 (staged)」そして「コミット済 (committed)」です。ワーキングディレクトリにあるファイルに変更を加えると、そのファイルは「変更済」となります。次にそのファイルをステージングエリアに追加すると (訳注: git add コマンドによりこれが行われる)、「ステージ済」となります。最後に、コミットすると「コミット済」となります。

Git のインストール方法

Git 環境の設定

Git 環境をカスタマイズできる git config というツール (コマンド) があります。特定のコンフィグ変数を設定することで、Git の見た目や機能を変更できます。これから説明するコマンドは、コマンドラインインターフェースで実行します (Mac ならターミナル、Windows ならコマンドプロンプトか PowerShell)。

コンフィグ変数の保存場所には、次の 3 つのレベルがあります。

  1. システム: /etc/gitconfig に保存されている変数は、そのコンピューターのすべてのユーザーに適用されるデフォルト設定です。このファイルに変更を加えるには、git config コマンドと --system オプションを使用します。
  2. ユーザー: ~/.gitconfig または ~/.config/git/config に保存されている変数は、ある特定のユーザーの設定として適用されます。このファイルに変更を加えるには、git config コマンドと --global オプションを使用します。
  3. プロジェクト: YOUR-PROJECT-PATH/.git/config に保存されている変数は、そのプロジェクトだけに適用される設定です。このファイルに変更を加えるには、git config コマンドを使用します。

互いに競合する設定がある場合、プロジェクトレベルの設定はユーザーレベルの設定より優先され、ユーザーレベルの設定はシステムレベルの設定より優先されます。

Windows ユーザー向けの注意: Git は、ユーザーレベルの設定ファイル (.gitconfig) をあなたの $HOME ディレクトリ (C:\Users\$USER) の中から探します。Git はまた /etc/gitconfig も探しますが、これは MSYS のルートディレクトリからの相対パスであり、インストーラーの実行時にあなたが Git を Windows システムのどこにインストールするよう指定したかによって変わります。あなたが Git for Windows のバージョン 2.x 以上を使用しているなら、システムレベルの設定ファイルが下記の場所にも存在します。

  • Windows Vista 以降なら C:\ProgramData\Git\config
  • Windows XP では C:\Documents and Settings\All Users\Application Data\Git\config

この設定ファイルは、git config -f <file> コマンドを管理者として実行する方法でのみ変更が可能です。

ユーザー名とメールアドレスの追加

Git は、ユーザー名とメールアドレスをコミットの情報の一部として含めます。下記コマンドで、この情報をユーザーレベルの設定ファイルに設定できます。

git config --global user.name "My Name"
git config --global user.email "myemail@example.com"

テキストエディタの変更

Git は自動でデフォルトのテキストエディタを使用しますが、変更することも可能です。下記は、代わりに Atom エディタを使用するよう設定する例です。(--wait オプションは、シェルにテキストエディタを待つように指示します。これにより、プログラムの実行が先へ進む前に、テキストエディタで作業することができます。)

git config --global core.editor "atom --wait"

出力の表示色の設定

このコマンドで、シェルが Git の出力に色を付けるように設定できます。

git config --global color.ui true

すべての設定を確認するには、git config --list コマンドを使用します。

プロジェクト内で Git を初期化する

Git のインストールと設定後、バージョン管理機能を使い始めるためには、プロジェクトディレクトリ内で Git を初期化する必要があります。コマンドラインで、cd コマンドを使用してあなたのプロジェクトの一番上 (ルート) のディレクトリに移動します。次に、git init コマンドを実行します。このコマンドは、Git があなたのプロジェクトを追跡するのに必要なファイルやオブジェクトを含んだ Git ディレクトリを設置します。

Git ディレクトリは、プロジェクトのルートディレクトリに設置されていることが重要です。Git はサブディレクトリ内のファイルを追跡することができますが、Git ディレクトリから見て親ディレクトリにあるファイルは追跡できません。

Git のヘルプを表示する

Git コマンドの使い方を忘れた場合、コマンドラインから Git のヘルプにアクセスする方法がいくつかあります。

git help COMMAND
git COMMAND --help
man git-COMMAND

このコマンドは、指定されたコマンドのマニュアルページを表示します。シェルウィンドウに表示されたマニュアルは、上下キーでスクロールするか、下記のキーボードショートカットを使用して操作できます。

  • f またはスペースキー: 次のページ
  • b: 前のページ
  • q: 閉じる