power-girl0-0

[GIT] git에서 commit(커밋) 내용 수정하기 본문

개발

[GIT] git에서 commit(커밋) 내용 수정하기

power-girl0-0 2021. 2. 17. 19:48
728x90

 

해당 게시물은 나동빈 님의 'Git으로 시작하는 협업 및 오픈소스 프로젝트'강의를 바탕으로 작성된 것입니다.

스스로 공부한 것을 정리하고 복습하기 위한 목적으로 작성하였습니다.


이전 게시글에서 진행하였던, git clone과정은 생략하도록 하겠다.


 git pull 명령어 

기본적으로 특정한 Git Hub의 저장소와 동일한 프로젝트를 가지도록 git pull 명령어를 수행해보자.

위와 같은 결과는 변경사항이 없기 때문에 출력된 구문이다.

 

git pull 명령어는 원격지에 있는 소스코드를 우리 컴퓨터에 그대로 가져오고, 자동으로 merge까지 수행해주는 명령어이다.


 

 특정 지점으로 프로젝트 자체를 되돌리기 

commit 및 push 내역은 git log 명령어를 통해서 확인이 가능하다.

예전에 커밋(Commit)이 진행되었던 위치로 돌아가야 한다는 가정을 해보자.


이 때 사용할 수 있는 명령어는 git reset 명령어이다.

로그를 통해 확인 했던 특정한 지점의 해시 값을 그대로 복사하여 git reset --hard 명령어로 돌아가도록 하였다.

 

위 실습은 firstfile.txt만 있을 때로 reset한 명령어이다.

--hard옵션 경우 돌아간 지점의 이후 내역은 증발해버리게 된다.


이는 아래와 같다.

 

git --hard를 하기 전 파일모습이다.

 실행된 모습은 아래와 같으며, firstfile.txt파일만 있던 시점으로 돌아간 것을 알 수 있다.


이처럼 reset 옵션들은 아래와 같다.


   1) hard옵션 : 돌아간 지점의 이후 내역들은 완전이 지운다.
   2) soft 옵션 : 돌아간 이후의 내역들을 남기고 싶을 때 사용한다.
   3) mixed옵션 : 기본 옵션으로, 돌아간 이후의 변경 내역들은 남아있지만 인덱스 값들은 모두 초기화된다.
 

위와 같은 실행은 그 당시 커밋했던 것과 동일한 프로젝트 구성으로 돌아가게 된다.

 

하지만, 로컬 컴퓨터에서의 프로젝트 구성이 Git Hub 저장소의 구성과 다르게 되는 문제점이 발생한다.

그래서 푸시(Push)를 진행하려고 해도 아래와 같은 오류가 발생한다.


이 때는 -f 옵션을 통해, 강제로 push 할 수 있다.


이처럼 강제로 push를 하게 되면, Git Hub 저장소에서도 완전히 특정한 지점으로 프로젝트가 되돌아간 것을 확인할 수 있다.


 Commit 메시지 변경하는 방법 

이제 commit 메시지를 변경하는 방법에 대해서 알아보자.

 

다음과 같이, Good Bye라는 메시지를 추가해서 commit해 보았다. 저는 하나의 함수를 추가해서 커밋을 해보았다.

 

위와 같이 commit 메시지를 추가하였는데, 변경하려면 어떻게 해야될까?


이 때는 git commit --amend 명령어를 사용할 수 있다.


그러면 자동으로 에디터가 열려서, Commit 메시지를 수정할 수 있다.

아래의 첫 번째 줄과 같이, 커밋 메시지를 바꾼 뒤에 저장하였다.

window계열은 유닉스르 사용하므로 , 에디터를 수정할 때는 a를 누르고 수정하고 저장할 때는 ctrl + : 입력 후, wq!로 저장한다.


git log를 통해 확인해보면, 아래와 같이 바뀐 것을 확인할 수 있다.


변경 후, 다시 git push을 진행하면 변경된 커밋 메시지가 반영된 것을 확인할 수 있다.


소스 코드에도 Good Bye메시지가 추가된 것을 확인할 수 있다.

 

 

 

 

728x90
Comments