Git

2-2강 버전 만드는 단계마다 파일 상태 알아보기

향찡 2019. 12. 28. 15:10

$ git status 메시지

changes not staged for commit : 아직 스테이지에 올라가지 않았다

작업 트리에 있는 파일은 크게 tracked상태와 untracked상태로 나뉜다

tracked 파일 : 깃은 커밋한 파일의 수정 여부를 계속 추적하는데 여기서 깃이 추적하고 있다는 뜻에서 tracked파일이라 부른다.

untracked 파일 : 한 번도 버전 관리를 하지 않았기 때문에 수정 내역을 추적하지 않았다는 뜻에서 untracked파일이라 부른다.

$ git log --stat : 커밋과 관련된 파일까지 함께 보기(q를 누르면 로그 화면을 빠져나와 깃 명령을 입력할 수 있다)

$ git status 메시지

working tree clean : 현재 작업트리에 있는 모든 파일의 상태는 unmodified, 즉 수정되지 않는 상태이다

changes not stage for commit : 파일이 수정만 된 상태(위에 써놓은 것처럼 아직 스테이지에 올라가지 않았다는 뜻 포함)

changes to be committed : 커밋 직전단계, 즉 staged 상태

방금 커밋한 메시지 수정하기

$ git commit --amend

작업 되돌리기

$ git checkout -- aa : aa의 변경 사항을 취소(파일의 수정을 취소)

스테이징 되돌리기

$ git add 명령어로 스테이지에 올린 후

$ git reset HEAD ~~ 를 입력하면 스테이지에서 내려짐

최신 커밋 되돌리기

$ git reset HEAD^ : 커밋을 취소하며 스테이지에서도 내려옴

$ git reset 옵션들

1. --soft HEAD^ : 최근 커밋을 하기 전 상태로 작업트리를 되돌린다

2. --mixed HEAD^ : 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌린다. 옵션 없이 git reset 명령을 사용할 경우 이 옵션을 기본으로 작동합니다.

3. --hard HEAD^ : 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌립니다. 이 옵션으로 되돌린 내용은 복구할 수 없습니다.

특정 커밋으로 되돌리기

$ git reset --hard 커밋해시(커밋ID) : 커밋 해시가 최신 커밋이 되고 그 이후 커밋들을 삭제

커밋 삭제하지 않고 되돌리기

커밋으로 되돌릴때 삭제해도 된다 -> $ git reset

커밋으로 되돌릴때 삭제하면 안 된다 -> $ git revert

cf) revert 명령의 경우 revert 명령 뒤에 취소하려고 하는 버전의 커밋 해시를 지정