git commit

준비영역(Staging Area)의 파일을 commit을 수행해 해당 git 저장소에 저장한다.

그리고 준비영역(Staging Area)에 넘어온 변경 내용을 토대로 변경이력을 남깁니다.

 

변경이력을 토대로 나중에 버그를 추적하거나 변경 이력을 롤백(roll back)할 때도 용이할 수 있습니다.

 

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

// 커밋 메시지를 입력후 커밋
// Staging Area에 들어간 파일에 대해서만 (워킹 디렉터리는 적용 X)
git commit -m "커밋 메시지"

// -a 옵션을 사용하면 
// 스테이징 절차(add)를 생략하고 바로 add와 commit을 동시에 수행한다.
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 <옵션> <돌아가고싶은 커밋>
git reset HEAD^ 또는 [commit 번호] 

//위와 동일 
// HEAD^는 헤드의 직전 위치를 의미한다. 즉, 현재 브랜치의 마지막 커밋을 뜻한다.

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

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

// [방법 3] 저장된 커밋들 중 하나로 헤드를 이동하는 작업 
// git이 관리하는 모든 파일이 해당 커밋의 상태로 돌아갑니다.
git reset --hard HEAD^ 


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

 

reset에 대한 더 자세한 내용은 아래 링크를 통해 알 수 있다.

git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0

 

 

 

 

 

 

참조:

 

sublivan.tistory.com/22?category=905894

 

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

 

www.daleseo.com/git-add/

 

 

반응형

'git(분산 버전 관리 시스템)' 카테고리의 다른 글

[git] git push  (0) 2021.03.06
[git] git remote  (0) 2021.03.06
[git] git add와 staging Area  (0) 2021.03.06
[git] 파일 상태 정리  (0) 2021.03.05
[git] git config  (0) 2021.03.05

+ Recent posts