공사중

쉽게 정리한 Git 사용법 : 수정하기(Staged->Working, discard changes) 본문

개발 | Git

쉽게 정리한 Git 사용법 : 수정하기(Staged->Working, discard changes)

행운개발자 LuckyDeveloper 2019. 2. 20. 16:23

우리가 작업했던 내용들은 대부분 되돌릴 수 있습니다. 하지만 되돌리고난 뒤에 다시 복구하는 것은 불가능합니다. 예를 들어서 커밋을 했을 때 어떤 파일을 추가/삭제하고 싶으면 커밋을 취소할 수 있지만, 취소했다가 다시 복구할 수는 없습니다. 


다시 커밋하고 싶은 경우에는 원하는 파일을 Staing Area에 올린 다음에 아래와 같이 입력하면 됩니다. 

커밋의 내용에 "아 이 파일 까먹고 안 넣었음."과 같은 내용을 남기지 않을 수 있는 방법입니다.


에디터를 사용하는 방법

git add forgotten_file
git commit --amend


에디터를 사용하지 않는 방법

git add forgotten_file
git commit --amend -m "덮어씌울 commit 내용"


이렇게 커밋 내용을 덮어씌우면 이전의 커밋은 히스토리에서 완전히 사라져서 되돌릴 수 없습니다.


다음으로는 Staging Area에서 Working tree로 파일을 이동시키는 방법입니다. commit될 목록에서 뺴고 싶을 때 사용합니다.

목록에서 빼는 방법은 사용법을 외울 필요가 없이 status를 보면 나와있습니다. 


git reset HEAD file


현재 Working tree에서 변경한 내용을 버리고 싶을 때가 있습니다. 예를 들어 git clone을 했을 때 자동으로 checkout 되었을 때의 시점으로 특정 파일을 되돌리고 싶을 때 사용합니다. 전체를 되돌리고 싶으면 그냥 다시 git clone을 하면 되겠죠?


git checkout -- file


그런데 수정한 내용이 정말 맘에 들지 않는 이상 변경 사항을 꼭 다 지워버릴 필요는 없습니다. 혹시라도 되돌리고 싶을 수 있기 때문입니다. 보통은 branch를 하나 만들어서 저장해두고 되돌리면 안전합니다. git으로 커밋한 것은 언제나 되돌릴 수 있습니다. --amend를 한 것도 삭제한 브랜치에 있던 것도 되돌릴 수 있습니다. 하지만 commit을 하지않고 삭제한 것은 절대 되돌릴 수 없기 때문입니다. 


브랜치가 무엇인지는.. 얼른 설명할 타이밍이 오면 좋겠네요.