이재호
깃허브 잔디가 안심어질때 🌳 본문
어느때와 다름없이 열심히 공부한 내용을 작성하고 깃허브에 올리고 있었습니다
그런데 어느순간부터 깃허브 잔디가 안올라가는걸 확인했는데요 , 분명 커밋은 재대로 들어갔는데 잔디가 안올라가 있어서
몇일 지켜보다가 시간이 지나도 업데이트가 되질 않아 직접 문제에 부딪혀 해결해보기로 했습니다
막상 블로그에 내용을 찾다보니 잔디오류를 해결하는 내용은 많이 나오는데 따라하다보니 저는 똑같이 따라해도 오류가 발생하고
그러다 보니 진도가 나가지 않게 되었습니다.. 잔디는 내가 활동했다는 증건데 여기서 포기해서 잔디를 잃을수도 없고
결국 2시간동안 삽질하고 부딪히면서 우여곡절 끝에 저도 잔디를 복구할수 있었습니다
찾으면서 느꼈던건 자료가 너무 제각각이였고 보다 쉽게 작성하면 저를 포함한 모두가 참고하기 좋을거 같아서 글을 작성하게 되었습니다
1. 현재 이메일 확인하기
본인이 작업하고 있는 파일경로에서 터미널을 연뒤에 아래의 명령어를 입력한다
git config --list
대부분 리스트를 보면 user.email 와 user.name 을 찾아 볼수 있을것이다.
(나는 참고로 명령어를 입력했는데 2개의 리스트가 없어서 직접 추가를 해주었다.)
보통 명령어에 있는 이메일이나 유저네임이 깃허브 로컬에 이메일과 달라 잔디가 안심어지는 문제가 야기되는데
먼저 자기의 기존 이메일과 유저네임을 확인해볼 필요가 있다
💡 명령어에서 탈출하는 방법은 q 를 입력하면 탈출하게 된다
2. 이메일 및 유저네임 찾는법
깃허브 홈페이지에 들어가서 오른쪽 상단 자기 프로필을 누르면 setting이 보일것이다
💡 username 은 해당 이미지에서 jaeh0lee 이다
해당 버튼을 클릭하고 들어가면 왼쪽에 Emails가 있는데 이걸 클릭한다
그럼 아래와 같은 이미지가 나오는데 이게 본인이 기존에 사용하고 있던 이메일이다
만약 명령어에 나온 이메일과 깃허브에 있는 이메일이 다르다면 깃허브 이메일로 수정을 해주어야 한다
3. git user 설정
email과 username을 바꾸는 방법은 아래와 같은 명령어로 작성하면 변경할수 있다.
예시 )
git config --global user. name "username"
git config --global user.email "userEmai"
git config --global user. name "jaeh0lee"
git config --globaluser.email "woghfghf@naver.com"
해당 명령어를 입력하였다면 오류가 있던 이메일이 변경이 되는데 이때 변경사항이 잘 적용되었는지 git config --list 를 다시 입력해서
확인해본다 잘 적용이 되었다면 이제 잔디를 복구할 차례이다. 👊🏻
🚨 혹여 명령어가 변경이 안됐을수도 있는데 global을 local로 바꾸어서 다시 명령어를 입력해보길 바란다.
git config --local user. name "username"
git config --local user.email "userEmai"
git config --local user. name "jaeh0lee"
git config --local user.email "woghfghf@naver.com"
4. 잔디 복구하기
잔디를 복구할려면 잔디가 업데이트 되지 않았던 잘못된 커밋을 찾아 그 해시값을 알아내야한다
다음과 같은 명령어를 입력해보자
git log
명령어를 입력하면 그동안 작성자가 작성했던 모든 커밋 내역이 나오게 되는데
반드시 정상적으로 잔디가 심어졌던 작성자가 설정된 커밋의 제일 마지막 커밋의 값으로 작업을 해야합니다.
저같은 경우에는 해당 이미지에서 78c7b5186cbf3cb2c041486a173a1269298bf38c의 커밋을 복사하고 다음 과정을 진행합니다.
5. rebase 사용하기
Git Rebase 란 말 그대로 base를 재설정한다는 의미로,
하나의 브랜치가 다른 브랜치에서 파생되서 나온 경우, 다른 브랜치에서 진행된 커밋을 다시 가져와서 base를 재설정하는 것입니다.
예시 )
git rebase -i 변경할 커밋 이전 커밋의 hash값
git rebase -i 78c7b5186cbf3cb2c041486a173a1269298bf38c
위와 같이 해시값을 복사해온뒤 명령어를 다음과 같이 입력을 하면
해당 화면에서 단축키 i 를 입력해서 pick이라고 적혀있는 부분을 edit 또는 e로 수정해줍니다.
vim 화면에서 나가는 방법은 내용을 다 수정하고 ESC 누른뒤 :wq 를 입력하고 Enter 를 입력하면 됩니다. :)
6. 작성자 수정하기
위 과정을 거치면 터미널에서 탈출하게 되며
다음에 이제 edit으로 변경할 커밋들이 존재하기때문에 아래와 같은 명령어를 입력해줘야 합니다.
예시)
git commit --amend --author="user이름 <email주소>"
git commit --amend --author="jaeh0lee <woghfghf@naver.com>"
git rebase --continue
이러면 이제 오류가 있던 커밋 한개가 수정이 된것입니다
저같은 경우에는 오류가 있던 커밋이 9개이기 때문에 해당 과정을 9번 반복해주면 됩니다
1 ~ 4 반복
1. git commit --amend --author="jaeh0lee <woghfghf@naver.com>
2. :wq
3. Enter
4. git rebase --continue
이렇게 반복을 진행하다보면 더이상 업데이트할 사항이 없다고 뜨는데
예시)
git push origin +브랜치명
git push origin +main
그럼 마지막으로 위 명령어를 작성해서 브랜치를 Push 해주면 정상적으로
작성자가 변경된 커밋들이 적용되고 잔디밭이 심어지는걸 볼수 있습니다 👏🏻👏🏻👏🏻👏🏻👏🏻
커밋이 안된 다른 프로젝트나, 파일이 또 있다면 해당 프로젝트나 폴더로 경로를 이동해서 했던걸 그대로 처음부터 하면 됩니다 😌