Git

git commit

git commit

준비영역(Staging Area)의 파일을 로컬저장소에 저장한다.

// 에디터가 출력되고, 에디터에서 커밋 메시지 입력 후 저장하면 커밋됨
git commit

// 간단한 커밋 메시지를 입력후 커밋
git commit -m "커밋 메시지"

// Staging Area에 들어간 파일에 대해서만 (워킹 디렉터리는 적용 X)
// -a는 커밋하기전에 자동으로 add(한번도 add하지 않은 파일은 자동으로 add가 되지않는다)
git commit -a -m "커밋 메시지"

//마지막 커밋메시지 수정, commit내용 잘 못했을 때 수정하기
git commit --amend -m "커밋 메시지"

 

 


 

git commit 취소하기

  • 완료한 commit을 취소해야 할때가 있다.
    1. 너무 일찍 commit 한경우
    2. 어떤 파일을 빼먹고 commit한 경우 이때, git reset HEAD^ 명령어를 통해 git commit을 취소 할 수 있다.
//commit 목록 확인
git log
// 기본 옵션
git reset HEAD^ 또는 [commit 번호] 

//위와 동일
// [방법 1] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에 보존
git reset --mixed HEAD^

// [방법 2] commit을 취소하고 해당 파일들은 staged 상태로 워킹 디렉터리에 보존
// 파일 내용은 그대로 유지하면서 staging area에 올림(add 상태)
git reset --soft HEAD^

// [방법 3] commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제
// 파일 내용까지 되돌림
git reset --hard HEAD^

git reset HEAD~2 // 마지막 2개의 commit을 취소

 

주의 및 tip)

※ reset 옵션

  • –soft :
    index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.
  • –mixed :
    index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)
  • –hard :
    index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소.

※ 만약 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌리고 싶으면, 아래의 명령어를 사용한다.

  • 단, 이 명령을 사용하면 원격 저장소에 있는 마지막 commit 이후의 워킹 디렉터리와 add했던 파일들이 모두 사라지므로 주의해야 한다.
// 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌린다.
$ git reset --hard HEAD

 

 

참고 링크)

 

https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html

'Git' 카테고리의 다른 글

git push  (0) 2020.10.30
git remote  (0) 2020.10.30
git add  (0) 2020.10.30
git status  (0) 2020.10.30
git init  (0) 2020.10.30