IT/Windows

[Git] git add 취소, git commit 취소, .gitignore 설정 방법

북더기 2021. 3. 30. 16:40

git에 commit 후 원격 저장소에 push 하려고 했는데, 잘못해서 gitignore를 설정하지 않는 바람에 metadata 파일이 모두 커밋된 상태라 staged 상태와 commit 을 취소하려고 사용하였습니다.

 

git bash 사용하였습니다. (커밋할 폴더 우클릭 -> git bash here)

1. Git add 취소하기

$ git reset HEAD [파일명]

git add * 를 통해 staged 상태였던 파일이, git reset HEAD 명령어를 통해 unstaged 상태로 돌아옵니다.

특정 파일 지정이 아닌, 모든 파일을 unstaged 상태로 바꾸고 싶으면 파일명은 제외합니다.

 

2. Git commit 취소하기

1) git commit -m "커밋 메세지"를 통해 commit 한 내역만 삭제하고, 그대로 staged 상태를 유지하고 싶을 때

$ git reset --soft HEAD^

2) git commit 내역 삭제와 함께 파일을 unstaged 상태로 되돌리고 싶을 때

$ git reset HEAD^ / git reset --mixed HEAD^
$ git reset HEAD~n // 마지막으로 커밋한 n개 삭제 : ex) 2면 2개 삭제

설정 후 git log로 커밋목록을 보면, 해당 커밋이 삭제된 것을 확인할 수 있습니다.

 

3. .gitignore 파일 추가하기

1) .gitignore 파일을 생성합니다.

$ vi .gitignore

2) www.toptal.com/developers/gitignore 에서 .gitignore에 포함될 키워드를 검색하여, 해당 프로젝트와 관련된 키워드를 입력 후 생성하여 얻은 텍스트를 복사해 옵니다.

ex) eclipse 를 통한 java 기반 프로젝트를 개발 중이면, eclipse와 java를 검색 후 추가합니다.

이에 대한 meta 데이터와 깃에 올라가지 않아도 될 설정 파일들이 제외됩니다.

사용하는 개발 환경을 입력하고, 생성합니다.

 

 

3) vi 에디터 사용(i 를 통해 insert, 텍스트 입력 모드로 변경)

$ i

4) 복사한 gitignore 텍스트를 붙여넣습니다.

5) 저장 후 종료(유닉스 커맨드라인 명령어 - vi에디터 사용합니다.)

$ ctrl + shift + ; 단축키 입력 후 wq!

 

저장 후, git에 stage 하고 commit 될때 .gitignore에서 설정한 파일이 제외하고 commit 됩니다.