git add .
명령어로 수정 파일을 Staging area로 이동시켰는데, 불필요한 파일들도 함께 Staging 영역으로 이동되어 곤란할 때가 있습니다.
이 때 git reset HEAD -- [file name]
명령어를 이용하여 Staging 영역에 있는 파일을 Unstaging 또는 Untracked 상태로 변경하여 commit 대상에서 제외시킬 수 있습니다.
1. Staging 영역에 있는 파일을 Untracked로 변경
예를 들어, aaa.java
만 commit하려고 했는데, 실수로 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
명령어 입력 시, 수정사항이 남아있는 것을 볼 수 있습니다.
Commit을 하고 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
Loading script...
Related Posts
- Git Alias - 단축/커스텀 명령어 설정
- Git에서 .gitignore 설정 방법
- git clone 명령어로 원격 저장소를 로컬에 저장
- Git - 두개 commit의 차이점 확인 (코드 차이, 파일 차이)
- Git - 브랜치 이름 변경하는 방법
- Git - 특정 commit 삭제, 되돌리기 (reset, revert)
- Git - 리모트 브랜치 생성과 삭제
- GitHub에 ssh-key 등록 방법 (Windows10)
- git log - 특정 author의 commit 리스트만 출력
- git log - commit 리스트 간단하게 출력 (pretty)
- Git - revert 명령어(commit 되돌리기)
- git diff 명령어로 파일 변경 내용 확인
- git show 명령어로 commit 정보 확인
- Git - 브랜치 생성, 삭제, 체크아웃
- Git - 원격 저장소(remote) 추가, 해제
- Git - Staging 영역의 파일을 Untracked로 변경
- Git - commit log에서 수정된 파일 목록 보기
- Git - 마지막 commit 수정, 삭제 방법 (reset, amend 명령어)
- git commit message 에디터 변경 (Vim, Sublime, Atom, VSCode)
- Git - blame 명령어, 코드 수정한 사람과 Commit 찾기
- Git - Patch 파일 만들기 & 적용하기