[Git] GitHub author 변경하기
들어가며
팀원이 제 노트북을 이용하게 되면서, Github의 작성자(Author)를 팀원 계정으로 설정 해준 적이 있습니다.
추후에 알고리즘 문제를 풀고 열심히 Commit & Push를 하다가 나중에서야 이 사실을 깨닫게 되어 수정해주었는데요.
따라서, Github Commit의 Author를 변경하는 방법과, Git Rebase 명령어를 이용한 커밋 이력 변경 방법을 정리하여 소개합니다.
❏ GitHub Author 변경하기
❍ Git Log 확인하기
시작하기 전에 먼저 Git Log를 확인하여 변경하고자 하는 커밋을 확인해봐야 합니다.
git log
해당 명령어를 통해, 우리는 커밋의 해시값, Author, Date, Commit Message과 같은 커밋 기록을 확인해볼 수 있습니다. 해시값을 기억해두고, 다음 과정을 이어가보겠습니다.
❍ Git 계정 정보 변경하기
git config --global user.name {~~}
git config --global user.email {~~}
새롭게 이름과 이메일을 설정합니다. 여기서 —global은 모든 Repository에서 사용되는 계정을 지정해주게 되며, 만약 해당 Repository에만 적용하고 싶다면 —local을 이용하면 됩니다.
❏ Rebase를 이용하여 커밋 변경하기
❍ Git Rebase
git rebase는 branch의 base 지점부터 코드를 수정하고, base 지점을 재설정하여 기존에 있던 Commit 이력을 재정렬하는 작업입니다. 따라서, Commit의 흐름을 보기 좋게 한 줄로 만들 수 있다는 점이 특징입니다.
❍ 변경할 Commit 선택하기
git rebase -i {commit의 해시값}
또는
git rebase -i HEAD~{n}
해시값으로 커밋 하나만 변경하거나, HEAD~n으로 가장 최신 커밋을 의미하는 HEAD로부터 n개까지의 커밋을 변경할 수 있습니다.
vi 편집기가 열리게 되며, commit 리스트 앞에 pick이라고 되어있는 부분을 수정하겠다라는 의미로 e로 변경해주고, esc → :wq로 저장하고 나오면 끝.
❍ Author 변경
이렇게 변경할 Commit을 선택하고, Author을 아래의 명령어를 이용하여 수정합니다.
git commit --amend --author="홍길동 <ABC@email.com>"
이렇게 작성자 변경까지 완료입니다.
HEAD~n으로 rebase를 시작했다면, 아래의 명령어를 통해 해당 프로세스를 반복하면 됩니다.
git rebase --continue
❍ Push하여 반영하기
이렇게 수정된 커밋들은 최종적으로 Push하여 원격에 반영을 해주어야 하는데요. 강제로 Push를 해주어야 반영이 되기 때문에, 혼자서 사용하는 Repository에서 사용해주는 것이 좋습니다.
git push --force
여기까지 진행하게 되면, GitHub Repository에서 내가 바라던 대로 반영된 커밋을 확인해볼 수 있습니다.