-
Git commit 수정하기깃허브 2019. 12. 17. 20:37
우리가 가끔 실수로 commit 하는 경우가 있다.
여기서 수정하는 방법을 알아보자.
그리고 시작하기 전에 전 게시글에 Git에서는
크게 두가지 상태가 있다고 설명되있다.
Untracked 와 Tracked 파일이다.
여기서 다시 Tracked 는 세 가지 상태로 나뉜다.
수정한 자신의 파일을 실수로 커밋한다고 치고 첫번째,
먼저 자신이 수정한 파일의 상태를 확인하기 위해,
git status 명령어로 상태를 확인해보자.
Changes not staged for commit 이라고 하면서 (staged 는 이제 commit 할 준비가 되었다는 뜻이다.)
modified : 자신이 수정한 파일명 이라고 붉은 글씨가 출력되는 것을 확인할 수 있다.
(수정된 파일도 add 해줘야 다음 commit 에 반영된다.)
수정한 파일의 변경점을 파악하기 위해서 두번째,
우리가 방금 수정한 파일의 내용이 달라진것을 파악하기 위해서
git에서는 명령어를 만들어놨는데 , 아래와 같다.
명령어 : git diff
명령어를 실행하게 되면 추가된 라인이 +로 표기되어서 나타난다.
만약 터미널에서 보기가 힘들다면 Git GUI를 쓰자.
아직 수정한 파일을 add 하지 않았다면 세번째,
보통 수정을 잘못해서 파일을 원상태로 되돌리고 싶을 때에 아래의 명령어를 사용한다.
명령어 : git checkout [파일명]
명령어를 실행하고 git diff 로 달라진 내용을 확인해보자.
아무것도 뜨지 않는다. 이것은 바로 직전에 명령어로 파일을 원상태로 되돌렸기에
변경사항이 없다고 뜨는 것 이다. 파일을 직접 확인해봐도 정상적으로 원상태로 돌아간 것을 볼 수 있다.
수정한 파일을 add까지 했다면 네번째,
수정한 파일을 add 까지 해서 Staged 상태라면
아래의 명령어로 Staged 상태에서 Modified 상태로 돌아갈 수 있다.
명령어 : git reset [파일명]
명령어를 실행하고 git status 로 상태를 다시 확인하면,
Modified 상태로 돌아간 것을 확인할 수 있다.
그러면 바로 위에서 배운 명령어로 되돌려주자.
명령어 : git checkout [파일명]
그리고 commit 을 한 후에 되돌릴 때도 git reset 명령어가 사용되는데,
명령어는 아래와 같다.
명령어 : git reset HEAD~1 (~1은 commit 1개 전으로 되돌아가라는 뜻이다.)
(기본적으로 mixed 적용된다.)
--soft , --mixed , --hard 옵션이 있다.
--soft 는 파일들을 commit 후의 Unmodified 에서 commit 직전의 Stage 상태로 만들고,
--mixed 는 Unmodified 에서 이전 commit 의 Modified 상태로 돌아간다.
--hard 는 Unmodified 에서 commit 전에 Unmodified 로 만들어준다. 즉 다 날려버린다고 보면 된다.
서버에 push 까지 해버린 경우 다섯번째,
일단 commit 을 한 후에 아래의 명령어를 실행하자.
명령어 : git revert HEAD
현재 HEAD를 취소하고 이전 HEAD로 돌아간다는 뜻인데,
명령어를 실행하면 Revert 에 대한 메세지를 수정할 수 있다.
메세지를 원하는대로 바꾸고 :wq 를 쳐주자.
reset 와 revert 의 차이점은 , reset 은 이전 commit 으로 직접 되돌아갔다면.
revert 는 현재 commit 위에 이전 commit 를 덮어 씌웠기 때문에
git log 로 확인해보면 새로운 commit 가 추가된 것을 볼 수 있다.
다음 게시글엔 branch에 대해 알아보자.
'깃허브' 카테고리의 다른 글
Git Branch 합치기 (Merge , Rebase) (★) (0) 2019.12.17 Git 브랜치(Branch) 관리하기 (★) (0) 2019.12.17 Github 이용하기 (0) 2019.12.15 Git 시작하기. (1) 2019.12.14