git add .
コマンドで修正ファイルをStaging areaに移動しましたが、不要なファイルも一緒にStaging領域に移動して困難になることがあります。
このとき git reset HEAD -- [file name]
コマンドを使って Staging 領域にあるファイルを Unstaging または Untracked 状態に変更して commit ターゲットから除外することができます。
1. Staging 領域のファイルを Untracked に変更
たとえば、 aaa.java
だけをコミットしようとしましたが、誤って git add .
コマンドのようにすべてのファイルをStagingに追加しました。
だから aaa.java
だけでなく bbb.java
ファイルも Staging 領域に追加されました。
$ git add .
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: aaa.java
new file: bbb.java
1.1 Staged ファイルを Untracked/Unstaged 状態に変更
このような場合、 git reset HEAD -- [file name]
コマンドを使用すると、 bbb.java
ファイルを Staging 領域から削除して Untracked 状態に変更できます。
$ git reset HEAD -- bbb.java
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: aaa.java
Untracked files:
(use "git add <file>..." to include in what will be committed)
bbb.java
もし
bbb.java
が以前にgitに反映されたファイルであればUnstaging状態に変更され、修正内容は削除されずに残ります。git diff
コマンドを入力すると、修正が残っていることがわかります。
コミットして git log
をチェックすると、 bbb.java
は untracked 状態に変更され、 aaa.java
ファイルだけ commit で反映されたことを確認できます。
$ git commit -m "4th commit"
[master 2cfe425] 4th commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 aaa.java
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
bbb.java
nothing added to commit but untracked files present (use "git add" to track)
$ git log --name-only
commit 2cfe42512c94252f4c8f00ddc894867eb26a936f (HEAD -> master)
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 19 10:21:33 2021 +0900
4th commit
aaa.java
Related Posts
- git cloneコマンドでリモートリポジトリをローカルに保存する
- Git - 2つのコミットの違いを確認する(コードの違い、ファイルの違い)
- Git - ブランチ名を変更する方法
- Git - 特定のコミットを削除、元に戻す(reset、revert)
- Git - リモートブランチの作成と削除
- GitHubにssh-keyを登録する方法(Windows10)
- git log - 特定のauthorのcommitリストのみを出力する
- git log - commit リスト簡単に出力 (pretty)
- Git - revert 命令 (commit 元に戻す)
- git diffコマンドでファイルの変更を確認する
- git showコマンドでコミット情報を確認する
- Git - ブランチの作成、削除、チェックアウト
- Git - リモートリポジトリの追加、解除
- Git - Staging領域のファイルをUntrackedに変更する
- Git - commit logで修正されたファイルのリストを見る
- Git - 最後のコミットを修正、削除する方法(reset、amend命令)
- git commit message エディタの変更 (Vim, Sublime, Atom, VSCode)
- Git - blameコマンド、コードを修正した人とCommitを探す
- Git - Patchファイルの作成と適用