[Github] 잔디 살리기, 잔디 어디갔어 ... (2)
잔디에 큰 신경을 쓰지 않는 편이다. 그런데 있어야 할 잔디가 없다면 뭔가 손해본 느낌이 확 든다. 분명히 어제 작업을 했는데 잔디가 보이지 않아 이유를 찾아보니 잔디가 보이는 조건이 있었다. 나는 작업을 했는데 잔디가 보이지 않으면 해당 프로젝트에 설정되어 있는 email 계정과 github에 등록된 email 계정이 동일한지 확인해보면 된다. 동일해야 잔디가 생긴다. 필자의 경우 회사 프로젝트와 개인 프로젝트 github 계정을 구분해서 사용하는데 그게 문제가 되었다. 이것에 대한 해결방법과 사라진 잔디를 살리는 방법을 알아보자.
설정 변경 (사전 작업)
우선 잔디 살리기 전 해당 프로젝트에서 git config --list 명령어를 입력하여 user.email을 확인해보자. 그리고 github 계정에 들어가 설정되어 있는 email을 확인하고 2개의 이메일이 동일한지 확인해보자. 만약 동일하다면 이 게시글을 말고 다른 게시글을 보는 게 더 빠를 것이다. 이 게시글은 email이 다른 경우 해결방법이 적혀있다.
다음 commit 부터는 정상적으로 잔디가 보이기 위해 git config user.email "github 등록 이메일" 로 해당 프로젝트 email을 변경해준다. 만약 모든 프로젝트를 통일하고 싶으면 git config --global user.email "github 등록 이메일" 을 해주면 된다. 앞으로의 commit은 잔디가 잘 보일 것이다. 이제 없어진 잔디를 살려보자. (아 모르겠다 귀찮다 하는 경우 마지막 명렁어 정리를 보고 따라하면 된다.)
없어진 잔디 살리기
없어진 잔디 살리는 방법은 생각보다 간단하다. 그러나 잘 따라오지 못 하면 귀찮게 git이 꼬일 수 있으니 주의해야한다. 명령어는 rebase를 사용하여 author에 있는 email을 변경해주면 된다. 상황에 따라 사용할 명령어가 다르다.
■ commit hash를 아는 경우
명령어 : git rebase -i commithash 이후 아래 작업을 이어가면 된다.
■ HEAD에서 n번째까지인 경우
명령어 : git rebase -i HEAD~n 이후 아래 작업을 이어가면 된다.
■ 모든 commit
명령어 : git rebase -i --root 이후 아래 작업을 이어가면 된다.
위 명령어를 입력하면 아래 처럼 표시될 것이다. i를 입력하여 insert mode로 변경하여 변경하고자 하는 commit hash 앞의 pick을 edit으로 변경하여 esc->:wq 으로 저장하고 나오면 된다.
저장하고 나오면 아래 이미지가 표시될 것이다.
지금부터 지옥의 노가다를 하면 된다. 명령어 : git commit --amend --author="사용자이름 <이메일>" 을 입력하여 author를 변경하고, 명령어 : git rebase --continue를 입력하여 계속 rebase를 진행하면 된다. 계속하다 보면 마지막에 도착할 것이다. 그때 명령어 : git push -f 을 통해 강제로 push 해주면 죽었던 잔디가 살아날 것이다.
명령어 정리 및 예시
author : hong / email : hong@naver.com이고 모든 commit을 변경해야 하는 시나리오를 가정하고 명령어와 설명을 적어보겠다.
명령어 : git config user.email hong@naver.com : 이후 commit 잔디 안생기는 문제 해결
명령어 : git rebase -i --root 이후 pick -> edit 으로 변경 : rebase할 commit 설정
명령어 : git commit --amend --author="hong <hong@naver.com>" : author 수정
명령어 : git rebase --continue : rebase 이어서 진행
명령어 : git push -f : 강제 원격 push
마지막
해당 내용은 틀릴 수도 있다는 것을 감안하여 봐주세요. 틀린 내용 및 오탈자 수정 요청 환영입니다.
'공유 > Git, Github' 카테고리의 다른 글
github action을 이용하여 PR시 효율적으로 tsc, eslint 검사하기 (0) | 2024.09.03 |
---|---|
[Git, Github] 프로젝트 중간에 Github repository 설정하기 (0) | 2022.04.26 |
[Github] 잔디 살리기, 잔디 어디갔어 ... (1) (0) | 2021.11.13 |
[Git] git stash, Git 저장하기 (0) | 2021.05.29 |
[Git] Untracked files, 추적하지 않는 파일 제거. git clean (0) | 2021.04.28 |