-
(git) 1 - github 잔디밭 커밋 오류 수정하기 (gitbash 이메일 설정) + 이전 github 작업물 잔디밭 심기개발/git 2023. 7. 19. 18:23
github 에서 이미 작업하던 작업물이 언젠가부터 커밋이 안되는 오류가 생겼다. ㅜㅜ
일명 잔디밭 심기 실패..
■ 잔디밭 커밋 오류 수정하기
아래와 같이 빈 칸이 생겨버리고 말았다. ㅠㅠ
해결을 하고자 찾아보니 가장 많이 생기는 것이 이메일 설정과 관련된 문제였다.
이를 해결하기 위해서 git 명령문 입력이 필요하므로 git-bash를 설치해준다.
설치는 아래 블로그 참고하자
https://parkjh7764.tistory.com/39
설치 완료되었다면 이제 git config --list 를 통해 내 설정을 확인해보자
1. $ git config --list 입력
입력하면 다음과 같이 뜬다.
나의 경우 컴퓨터에서 노트북으로 이동해서 그런지 이메일이 연결이 아예 안뜬 것으로 확인됐다.
그렇다면 이제 이메일을 연결해주면 된다.
2. 로컬에서 기본값으로 사용할 git 사용자 이름과 이메일 설정하기 (global)
$ git config --global user.name 이름
$ git config --global user.email 이메일 주소
를 통해 내 이름과 이메일 주소를 등록한다.
3. 해당 내용 git config 에 추가해주기
$ cat ~/.gitconfig
[user]
name = 이름
email = 이메일 주소
넣어서 내용을 추가해준다.
4. 들어간 내용 확인하기
다시 $ git config --list 를 입력해준다.
그러면 아까와 다르게 이름과 이메일이 등록된 것을 확인할 수 있다.
5. 잔디 커밋처리하기
커밋처리 해주고 확인한다.
확인하면 업로드 된 것을 확인 가능하다.
■ 이전 잔디 커밋처리하기
1. 미업로드된 폴더 선택
내가 작업한 작업물이 안올라간 폴더 선택 후 git bash 열어준다.
2. 작업 폴더 email 설정
git config user.email 이메일 주소 입력
이렇게 입력하면 해당 폴더에 내 이메일이 등록된다.
3. 안심고 지나간 커밋 해쉬코드 찾기
git log --pretty=format:"%h = %an , %ar : %s" --graph 해당 명령어로 git log 를 확인한다.
여기서 나타나는 da9c4a6 과 같은 해쉬코드는 기억해둬야 한다.
※ 해쉬코드는 앞에 나오는 영문 숫자 합쳐진 말
4. 해쉬코드 명령어 입력하기 (신버전)
많은 블로그에서 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-merges 가 지원하지 않고 다른 것으로 대체 되었기 때문이다.
따라서 아래와 같은 코드를 입력해주면 된다.
※ rebase
기존의 커밋을 그대로 사용하는 것이 아니라 내용은 같지만 다른 커밋을 새로 만든다.
git rebase -i -rebase-merges 해쉬코드 or git rebase -i -r 해쉬코드 를 입력하면 다음과 같이 뜬다.
첫번째 커밋부터 rebase 처리가 필요하다면 git rebase -i -r --root 처리하면 된다.
=> git rebase -i -r 해쉬코드
=> git rebase -i -r --root
화면과 같이 rebase 처리할 것을 pick 에서 edit 으로 바꿔주면 된다.
해당 화면에서 a 를 누르고 rebase 처리해줄 커밋 해쉬코드를 선택한 다음 pick -> edit 으로 변경해준다.
그리고 esc 키보드 키를 누르고 :wq 를 적어서 나가줘야 한다.
여기서 키를 누르는게 많이 헷갈리는데 그냥 저 edit 밑에서 안전하게 esc 키 누르고 :wq 처리해준다.
그러면 다음과 같이 창이 뜬다.
여기서 git commit --amend --author="이름 <본인 이메일>" 눌러준다.
그러면 다음과 같은 창이 뜬다.
여기서 하단에 :q 눌러주면 나올 수 있다.
나가면 다음과 같은 창을 볼 수 있다.
이제 저 rebase 만큼 작업을 해줘야 한다. ㅠ
파일 처리를 위해 git rebase --continue 쳐준다.
git commit --amend --author="이름 <본인 이메일>" 눌러준다.
다 마치면 git push -u origin +master 을 통해 파일 업로드를 해준다.
그러면 다음과 같이 업로드가 쭉 된다.
그러면 비워졌던 잔디밭이 찬 것을 확인!
다행이다. ㅠ
■ conflict 발생 및 merge 처리 오류 발생 시
나의 경우 중간에 conflict 발생 및 merge 처리를 해달라고 떴다.. 하
1. rebase 를 나오는명령문 git rebase --abort 입력
2. git reflog 를 통해 rebase 시작 전 head 해쉬 값 확인했다.
3. git reset --hard 036c752
나는 사진과 같이 헤드 해쉬값 잘못 넣었지만 다른 이들은 잘 넣기를 바란다. ㅠㅠ
만약 어려워서 다시 시작하고자 한다면 해당 git-bash 종료 후 처음부터 다시시작하자
rebase 실패 시 다시 시작하는 코드는 git rebase --quit 이다.
github 잔디밭 안 심어지는 현상 해결 및 이미 커밋한 내용 반영하기 — wellbell의 개발일기 (tistory.com)
'개발 > git' 카테고리의 다른 글
(git) 5 - Git 실습 (기초) (2) 2024.10.13 (git) 4 - Git 의 세 가지 영역 (작업 영역, 인덱스 영역, 헤더 영역) (1) 2024.10.13 (git) 3 - github 기본 (0) 2024.04.04 (git) 3 - github 원격저장소 특정 브랜치 가져오기 (0) 2024.04.03 (git) 2 - github 프로젝트 올리기 (0) 2024.03.15