Git unstaged changes, untracked file 제거하기

Git unstaged changes, untracked file 제거하기

개발을 하다보면 현재 작업한 파일 이외에 필요 없는 파일들이 생성 될 때가 있다. 보통 app build를 할때 생성되는 파일이 대표적이다. 또한 내가 수정한 파일들 중 test로 수정을 한 다음 다시 원래대로 돌려놓고 싶을 때가 있다.

물론 항상 제외해야하는 파일들은 .gitignore에 잘 등록을 해둬야겠지만 예외 상황에는 이렇게 하면 된다.

한번 staged, unstaged, untracked 상황을 보며 얘기해보자

Staged change

Staged change은 보통 이미 git에서 tracking이 되고 있으며 change가 있는 파일중 git add (filename or directory name) 를 통해 stagging 상태에 있는 파일을 의미한다. 이 상태에서 commit 하면 stagging 된 파일들만 해당 커밋에 추가된다.


Unstaged change

unstaged change은 보통 이미 git에서 tracking이 되고 있으며 change가 있는 파일이 여기에 해당한다.

이 파일을 테스트로 수정했거나, 이전에 tracking 되던 파일인데 build를 하니 내용이 바뀌었다던가 하면 아래와 같은 코드로 원래대로 돌릴 수 있다.

1
git checkout (filename or directory name)

물론 build를 하니 내용이 바뀌는 파일이 있을때는 그 원인을 정확히 파악하고 수정해야한다. build를 할때마다 바뀔수는 없으니 ㅠㅠ

필자는 iOS build를 할때 protobuf 라이브러리가 계속해서 protobuf -> Protobuf로 변경되는 이슈가 있었는데, 왜그런지 보니 protobuf 버전이 낮아서였고 pods 폴더를 제거하고 protobuf 버전을 높여서 다시 pod install 하니 해결되었다.


Untracked file

untracked file은 새로 추가된 파일이 이 상태로 뜨게된다. build 폴더를 ignore 안해놨다던가, 실수로 이미지파일이 추가되었다던가, 하는 등등의 이유로 뜨게된다. 이때는

1
git clean -fd

이 명령어로 해결할 수 있다.


주의해야 할 점

위의 명령어들로 change를 제거했을 경우 되돌릴 방법이 없다. 또한 항상 왜 필요없는 파일이 생기는지 파악하고 해결하는 것도 좋은 공부가된다.

추가로!

staged change를 unstaged 또는 untracked로 되돌리려면?

1
git reset
#

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×