✅ Objective
- 特定のファイルに対するgit addの操作を取り消し、ステージングエリアからワーキングディレクトリに戻す
- ファイルの内容自体は変更しない
🎯 Goal
📘 Guideline
git add
でファイルをステージングすると、そのファイルはステージングエリア(インデックス)に移動し、コミットの準備が整います。もし考えが変わってunstageしたい場合(変更内容を失うことなく)、一般的に2つの選択肢があります:
git restore --staged <file>
git reset <file>
ここでは、より新しいタスク特化型のGitコマンドの一部であるgit restore
について説明します。このコマンドは、より直感的で分かりやすく、インデックスの状態を「復元」する動作に特化しています。他の形式で使用した場合にコミット履歴にも影響を与える可能性があるgit reset
の、より広範で潜在的に混乱を招く影響を避けることができます。
特定のファイルをunstageする
git restore --staged <file_name>
複数の特定のファイルをunstageする
git restore --staged <file_name1> <file_name2> ...
- unstageしたいファイルをスペースで区切って列挙します。
実行後の結果を確認する
git status
💻 git unstage 用のカスタムエイリアス設定
Gitでは、.gitconfig
の[alias]
セクションを通じて、長いコマンドのショートカット(Alias)を定義できます。
設定の構文
[alias]
<shortcut> = <actual git command>
Aliasの設定
以下の設定で、git unstage
というGitサブコマンドのAliasを定義します。
[alias]
unstage = "restore --staged"
これにより、git unstage <file>
がgit restore --staged <file_name>
と同じように機能します。