[Tistory] 이전 커밋 메세지 변경

원글 페이지 : 바로가기

1. 최신 커밋 메세지 변경 가장 최근 커밋 메시지 다시 쓰기 git commit –amend 명령을 사용하여 가장 최근의 커밋 메시지를 변경할 수 있습니다. Git에서 커밋 메시지의 텍스트는 커밋의 일부입니다. 커밋 메시지를 변경하면 커밋 ID(즉, 커밋 이름을 지정하는 SHA1 체크섬)가 변경됩니다. 실제로 이전 커밋을 대체하는 새 커밋을 만드는 것입니다. 2. 이전 커밋 메세지 변경 이전 또는 여러 커밋 메시지 수정 이미 GitHub.com에 커밋을 푸시한 경우 수정된 메시지와 함께 커밋을 강제로 푸시해야 합니다. 리포지토리의 기록이 변경되므로 강제 푸시를 사용하지 않을 것을 강력히 권장합니다. 강제 푸시를 사용할 경우 이미 리포지토리를 복제한 사용자는 로컬 기록을 수동으로 수정해야 합니다. 자세한 내용은 Git 설명서의 “업스트림 다시 지정에서 복구”를 참조하세요. 가장 최근에 푸시된 커밋의 메시지 변경 위 단계에 따라 커밋 메시지를 수정합니다. 이전 커밋을 강제로 푸시하려면 push –force-with-lease 명령을 사용합니다. git push –force-with-lease origin EXAMPLE-BRANCH 이전 또는 여러 커밋 메시지 변경 여러 커밋 또는 이전 커밋에 대한 메시지를 수정해야 하는 경우 대화형 다시 지정을 사용한 다음 강제 푸시를 사용하여 커밋 기록을 변경할 수 있습니다. 명령줄에서, 수정하려는 커밋이 포함된 리포지토리로 이동합니다. 기본 텍스트 편집기에서 마지막 n개 커밋의 목록을 표시하려면 git rebase -i HEAD~n 명령을 사용합니다.목록은 다음과 유사합니다. pick e499d89 Delete CNAME pick 0c39034 Better README pick f7fde4a Change the commit message but push the same commit. # Rebase 9fdb3bd..f7fde4a onto 9fdb3bd # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like “squash”, but discard this commit’s log message # x, exec = run command (the rest of the line) using shell # # These lines can be re-ordered; they are executed from top to bottom. # # If you remove a line here THAT COMMIT WILL BE LOST. # # However, if you remove everything, the rebase will be aborted. # # Note that empty commits are commented out # Displays a list of the last 3 commits on the current branch $ git rebase -i HEAD~3 변경하려는 각 커밋 메시지 앞에서 pick를 reword로 바꿉니다. pick e499d89 Delete CNAME reword 0c39034 Better README reword f7fde4a Change the commit message but push the same commit. 커밋 목록 파일을 저장한 후 닫습니다. 결과 커밋 파일마다 새 커밋 메시지를 입력하고 파일을 저장한 후 닫습니다. 변경 내용을 GitHub로 푸시할 준비가 되면 push –force 명령을 사용하여 이전 커밋을 강제로 푸시합니다. git push –force origin EXAMPLE-BRANCH 출처: https://docs.github.com/ko/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message 커밋 메시지 변경 – GitHub Docs 커밋 메시지에 명확하지 않거나 잘못되거나 중요한 정보가 포함된 경우 로컬에서 수정하고 새 메시지와 함께 새 커밋을 GitHub에 푸시할 수 있습니다. 커밋 메시지를 변경하여 누락된 정보를 추 docs.github.com 나의 경우 이전 메세지에 오타를 발견하여 이를 수정하고자 2번을 사용했다. git bash에서 1. “git rebase -i HEAD~n” 입력 2. 편집창이 열리고 ‘ i ‘ 누르면 insert 모드로 바뀜 3. 수정하고 싶은 커밋 메세지 앞에 pick -> reword 로 수정하고, 커밋 메세지도 수정하기 4. ctrl+c로 insert 모드 끝내기 5. ctrl+c 한번 더 누르고 :wq 입력하여 저장하고 편집창 닫기 (cd. :qa! 입력하면 그냥 창 닫기) => git commit –amend 를 사용하고 커밋을 수정할 수 있는 창이 뜨면, 수정을 완료한 후 esc -> :wq (저장 + 창 닫기) 6. 커밋을 이미 push하여 레파지토리에 올린 경우 “git push –force 브랜치이름” 입력하여 강제로 푸시하기 (cf. 팀프로젝트일 경우 다른 팀원들이 로그를 수동으로 수정해주어야 하기 때문에 최대한 사용하지 말 것) 참고 블로그: https://velog.io/@mayinjanuary/git-%EC%BB%A4%EB%B0%8B-%EB%A9%94%EC%84%B8%EC%A7%80-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0-changing-commit-message [git] 커밋 메세지 수정하기 (changing commit message) 로컬에 있는, 혹은 리모트에 이미 올라간 commit message 를 수정하는 방법을 알아봅니다. 가장 최신의 commit 을 수정하는 방법과, 더 오래된 commit 을 수정하는 방법을 알아봅니다. velog.io 수정된 내용이 잘 적용되지 않아 다시 한번 수정하려고 “git rebase -i HEAD~n” 을 입력했으나, fatal: invalid upstream ‘HEAD~n’ 오류가 떴다. => 이 때, git rebase -i –root 를 입력하면 그동안 커밋했던 메세지가 다시 잘 나온다 참고 블로그: https://hyesun03.github.io/2018/10/05/git-rootcommit-edit/ git 첫 번째 커밋 메세지 수정 첫 번째 커밋메세지 내용을 수정하려고 했고 로컬에서만 작업한 상태라서 rebase하기로 했다. 보통 쓰던대로 git rebase -i HEAD~n을 썼는데 invalid upstream ‘HEAD~6’라는 에러메세지가 나왔다. root까지 가는 hyesun03.github.io 작업 중 git rebase가 잘못되어 원하지 않게 파일이 삭제 되었다면 “git reflog 브랜치이름”을 치고 돌아가고 싶은 커밋번호를 찾은 뒤 “git reset –hrad 커밋번호 or HEAD@[숫자}” 를 입력한다 참고 블로그: https://velog.io/@whoyoung90/TIL-51-git-rebase%EB%A5%BC-%EC%9E%98%EB%AA%BB%ED%95%9C-%EA%B2%BD%EC%9A%B0-%EB%90%98%EB%8F%8C%EC%95%84%EA%B0%80%EA%B8%B0 [TIL #51] git rebase를 잘못한 경우 되돌아가기 210506 git reflog / git reset velog.io

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다