관리 메뉴

FU11M00N

[ git & github ] Git Commit 내역 수정하기. 본문

Git

[ git & github ] Git Commit 내역 수정하기.

호IT 2021. 2. 18. 03:53

 

 

이 포스팅은 구름 에듀 강좌 나동빈 선생님 강의 "Git으로 시작하는 협업 및 오픈소스 프로젝트" 를 기반으로 작성되었습니다.

 

edu.goorm.io/learn/lecture/11528/git으로-시작하는-협업-및-오픈소스-프로젝트/info

 

구름EDU - 모두를 위한 맞춤형 IT교육

구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/

edu.goorm.io

 

 


 

 

- 커밋 내역 확인 하기

커밋 내역

 

깃허브에서 위의 사진처럼 "commits" 를 클릭하면 커밋내역을 볼수 있습니다.

 

 

 

 

 

혹은  git log라는 명령어를 통해서도 확인이 가능합니다.

즉 파일 내역이 언제 수정이 되어 적용되었는지 확인이 가능한 것입니다.

 

 

 

그럼 깃에서 커밋 내역을 수정하는 방법을 알아보겠습니다.

 

 

 

- 커밋 되돌리기

 

 

- 특정 지점으로 프로젝트 자체를 되돌려 보기.

 

 

먼저 git pull 명령어를 이용하여 내 저장소와 원격 저장소의 내역을 일치 시켜줘야합니다.

 

 

그리고 py_code 에 mul 함수를 추가해보겠습니다.

 

 

저는 이미 내 로컬 저장소와 원격 저장소의 상태가 같기때문에 "Already up to date" 문구가 출력됩니다.

 

 

 

def add(a,b):
	return a+b;
    
def sub(a,b):
	return a-b;

def mul(a,b):
	return a*b;

 

 

코드를 위와 같이 수정해줍니다.

 

 

그리고 add 과 commit 하고 push 까지 해주었습니다.

 

 

 

 

그럼 이제  git log 를 통해 log를 확인해보겠습니다.

먼저 커밋 내역이 보입니다.

 

commit 옆에 해시 값은 그 커밋의 고유값입니다.

git log를 빠져나오고 싶다면 'q' 키를 눌러주면 됩니다

 

 

만약 이 커밋 중 제일 첫번재 버전으로 돌리고 싶다면 reset 명령을 쓰면 됩니다.

아래와 같이 입력해주면 특정 지점으로 돌아가고, 이후의 커밋들은 다 지우겠다는 의미가 됩니다.

 

 

 

가장 첫번째 버전의 해시값을 통해서 reset 을 사용해보겠습니다.

 

 

 

 

다시 깃 로그를 살펴보면 해당 커밋 말고 이후의 커밋은 사라진 것을 확인할 수가 있습니다.

 

이외의 옵션으로도 커밋 내역을 보관하면서 돌릴 수 있는 등의 다양한 옵션(soft, mixed..)이 존재하는데 이는 아래 깃 사이트를 참고하면 됩니다.

 

git-scm.com/book/ko/v2/Git-도구-Reset-명확히-알고-가기

 

Git - Reset 명확히 알고 가기

지금까지 reset 명령을 실행하는 기본 형태와 사용 방법을 살펴봤다. reset 명령을 실행할 때 경로를 지정하면 1단계를 건너뛰고 정해진 경로의 파일에만 나머지 reset 단계를 적용한다. 이는 당연한

git-scm.com

 

 

 

하지만 이 상태는 원격저장소에는 저장되지 않습니다. 그저 자신의 로컬 저장소에만 저장 되는 것입니다.

 

 

 

원격 저장소에서도 하고 싶다면, git push를 해주면 됩니다.

 

하지만

그냥 git push명령을 사용하면 현재 로컬 저장소와 원격 저장소의 내용이 다르므로 에러가 발생합니다.

이를 해결하려면 그냥 -f 옵션을 주어 강제로 맞춰주면 됩니다.

이렇게 되면 원격 저장소에서도 로컬 저장소와 동일하게 적용 됩니다.

 

 

 

- 커밋 메세지 변경 방법

 

 

커밋 메세지를 수정해야 하는 경우 "git commit --amend" 명령어를 사용합니다.

 

 

자동으로 특정 에디터가 실행됩니다.(유닉스 에디터)

저는  첫번째 줄 "깃 튜토리얼" -> "깃 튜토리얼 2" 로 수정했습니다.

 

 

 

그 후 git log 를 해보면 commit 메시지가 변경된 것을 알 수 있습니다.

 

 

 

 

 

그럼 이것을 강제로 push 시킨 후 원격 저장소에서 확인을 해보겠습니다.

 

 

 

커밋 내역을 확인해보면 정상적으로 커밋 메세지가 변경된 것을 확인 할 수 있습니다.

 

보통 커밋 메세지를 실수 할 경우 사용하는 기능입니다.

 

Comments