Git - Staging area에 있는 파일 제거

By JS | Last updated: June 19, 2021

git add . 명령어로 수정 파일을 Staging area로 이동시켰는데, 불필요한 파일들도 함께 Staging 영역으로 이동되어 곤란할 때가 있습니다.

이 때 git reset HEAD -- [file name] 명령어를 이용하여 Staging 영역에 있는 파일을 Unstaging 또는 Untracked 상태로 변경하여 commit 대상에서 제외시킬 수 있습니다.

Example

aaa.java만 commit하려고 했는데, 실수로 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

Staged 파일을 Untracked/Unstaged 상태로 변경 : git reset HEAD -- [file name]

git reset HEAD -- [file name] 명령어로 bbb.java 파일을 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 명령어 입력 시, 수정사항이 남아있는 것을 볼 수 있습니다.

Commit을 하고 git log를 확인하면, bbb.java는 untracked 상태이고, aaa.java 파일만 반영된 것을 확인할 수 있습니다.

$ 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
댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha