ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git] 가장 최근에 push한 커밋 메시지 수정하기
    공부/Git 2022. 7. 21. 11:55
    반응형

     

     

     

     

    1. 소개


    간단한 기능 하나를 수정하는 이슈를 맡았습니다. 이때 이슈 내용은 하나의 페이지만 수정하면 됐는데, 다른 페이지를 살펴보니 해당 페이지에도 똑같이 수정할 내용을 발견해서 하나의 PR에 두 개의 커밋으로 제출을 하려고 합니다.

     

    그래서 위 사진에 있는 커밋 메시지를 Modify nickname input position이 아닌 Modify nickname input position of OSS List로 바꿔야 합니다.

    하지만 먼저 리포지토리의 커밋 메시지가 OSS List로 보내도 되는지, 아니면 oss list로 소문자로 보내야하는지 찾아봅시다.

     

    1) 이전 commit 찾아보기

    2) 내가 보낸 commit 수정하고 반영하기


     

     

     

    2. 이전 commit 찾아보기


    이전 커밋 메시지를 검색하는 방법은 두 가지가 있습니다.

     

    1) 커밋 메시지 내용까지 확인하는 방법

    $ git log --grep "검색 내용"

    이 경우에는 커밋 메시지 제목뿐만 아니라 내용까지 확인할 수 있습니다.

     

     

    2) 커밋 메시지 제목만 확인하기

    $ git log --oneline --grep "검색 내용"

     

    3) 커밋 메시지 특정 내용 삭제하고 보기

    $ git log --oneline --grep "제외할 내용" --invert-grep

    저 같은 경우엔 따로 메시지 내용을 적을 필요없이 제목만 확인하면 되기 때문에 두 번째 방법으로 확인하겠습니다.

    여기서는 다른 리포지토리에서 "first"라는 문자열이 들어간 커밋만 확인하려고 합니다.

    $ git log --oneline --grep "first"

     

    개인적으로 oss list를 대문자로 적어야하는지, 소문자로 적어야하는지 찾아보니 다들 OSS List로 작성을 하네요. 그러면 원래 적은대로 OSS List로 수정하겠습니다.


     

     

     

    3. 내가 보낸 commit 수정하기


    내용을 수정하는 방법은 두 가지가 있습니다.

     

    1) 커밋 메시지 제목만 수정하기

    $ git commit --amend -m "수정할 커밋 제목"

     

    2) 커밋 메시지 내용까지 수정하기

    $ git commit --amend
    
    # 이후 내용 수정하고, Ctrl+O, Ctrl+X로 나가기 (nano 기준)

    저는 제목만 수정할 것이니 1번 방법을 사용하려고 합니다.

    $ git commit --amend -m "Modify nickname input position of OSS List"

    수정했으니 이제 반영을 합시다.

    원래 커밋 메시지를 수정해야하는 것이므로 force push를 사용합니다.

     

    $ git push -f origin develop
    
    # git push -f <remote> <branch>

     

    이렇게 수정된 것을 확인할 수 있습니다!

     

    커밋도 이전 커밋에 잘 덮어씌워진 것을 확인할 수 있습니다.

     

    해당 커밋은 가장 최근의 커밋 메시지를 수정하는 방법인데, 이외에도 rebase를 사용하여 가장 최근의 커밋이 아닌 이전 커밋도 선택하여 수정할 수 있습니다. 하지만 이것은 지금 당장 필요한 일이 아니라서 나중에 기회가 된다면 포스팅하도록 하겠습니다.


     

    반응형

    댓글

Designed by Tistory.