git

github 잔디밭 오류 해결 및 이전 커밋 내용 반영

코디드 2023. 2. 12. 15:24

0. 왜 잔디가 안심어질까?

 

신나게 커밋을 하고 있었는데 어느 순간부터 잔디가 안심어져서 user.email을 확인해보니까
잔디가 심어지지 않던 순간부터 github에 등록되지 않은 이메일로 커밋을 하고 있었다.

 

대체 왜 중간에 바뀐건지 모르겠지만 설마 내가 입력하지도 않은 이메일을 알아내서 자동으로 바꿔줄리도 없고

당연히 내 잘못이겠지 하면서 열심히 심은 잔디를 날리기 싫어서 방법을 찾아봤다.

 

https://wellbell.tistory.com/43 

 

github 잔디밭 안 심어지는 현상 해결 및 이미 커밋한 내용 반영하기

1. github 잔디 안심어지는 현상 해결 흔히 잔디밭이라고 불리는 github contributions(activity) 나의 저장소 중 어디라도 commit해서 push해서 반영 시키면 잔디가 심어져야하는데 심어지지 않을때가 있다.

wellbell.tistory.com

이 게시물 참고 함.

 

 

 

1. 깃허브에서 email 확인

 

우선 git hub에서 setting>emails로 가서 내 이메일을 확인해준다

 

 

 

2. local git에 등록된 이메일 확인

 

 

$ git config --list

 이걸 입력하면 email 주소를 확인할 수 있다.

local 환경의 email 값과 remote 의 email 값이 다를 경우 commit을 해도 잔디가 안심어짐

 

 

 

3. 이메일 변경

 

 

git config user.email "내 이메일 주소"

git config --global user.email "내 이메일 주소"

위에는 작업 폴더의 이메일 값 변경

아래는 local git 전체의 이메일 값 변경

 

 

 

4. 잃어버린 커밋 해시 코드 찾기

 

 

git log --pretty=format:"%h = %an , %ar : %s" --graph

잔디를 안심고 지나간 해시코드 확인하고 기억하기

 

 

 

5. 해시코드 rebase 하기

 

 

구글에 검색을 해보면 다른 블로그들은 아직도

git rebase -i -p 해시코드

라고 입력하라고 한다. 아마 예전에 작성해둔 게시물이라 그런것 같은데 저렇게 입력할 경우

 

fatal: --preserve-merges was replaced by --rebase-merges
Note: Your `pull.rebase` configuration may also be set to 'preserve',
which is no longer supported; use 'merges' instead

라고 뜬다. 이제 preserve-merge가 --rebase-merge 로 바뀌었으니까 그냥 merger 하라는 얘기다.

 

 

 

git rebase -i 해시코드

이걸 입력해준다. 

 

 

아까 커밋은 했는데 잔디는 심지 못한 억울한 해시코드의 pick을 edit 으로 바꿔준다.

a를 눌러줘야 수정이 가능하다는것 기억하시죠?

수정이 다 됐으면 esc :wq 로 저장 후 나가기 

 

 

git commit --amend --author="이름 <본인 이메일>"

입력을 해주면 다시 수정하라고 뜨는데 잔디만 심을거라서 저장하고 나가준다

예전 게시물들을 찾아보면 그냥 나가려면 q만 누르면 된다고 하는데 내 경우 수정을 안해도 저장을 안하면 나갈수가 없다.

 

git rebase --continue

이후 잔디를 놓친 갯수만큼 무한 반복!

난 다행히 세 번째 커밋부터 잔디 심기가 안돼서 몇번 더 커밋했다가 여섯개 쯤 올려도 안됐을때 방법을 찾아봤는데 참고한 블로그를 보니 무려 200개 넘게 올린후에 잔디가 안심기는걸 알게되었다고 한다

커밋할 때마다 잔디가 잘 심겼는지 확인해야 할거 같다.  

 

 

$ git rebase --continue
fatal: No rebase in progress?

더이상 없으니까 그만하라고 할때까지 해주면 완료!

 

 

 

번외

 

처음 배울때는 쉽게 됐는데 막상 내가 하려니까 할때마다 오류가 난다. 오른쪽 마우스>team>commit 할때는 잘만 되더니 terminal 이용해서 하려니까 git clone이 따로 돼서 안되기도 하고, 그래서 일단은 쉬운 방법으로 올렸는데 자기 마음대로 전체 파일이 안올라가고, 삭제하려고 했더니 삭제도 안되고, 그래서 git만 해제하려고 했다가 파일 자체를 날려서 복구하기도 하고 아주 총체적 난국이다. 그래도 이렇게 해봐야 나중에 고생안할테니까 익숙해질때까지 계속 해봐야겠다.