1. 로컬에서 설정된 이메일과 Github 원격에 설정된 이메일이 다른 경우 push를 해도 잔디가 심어지지 않는다.
우선 아래 설정을 통해 이 후 커밋 푸쉬 내역에 대해서 잔디가 심어지도록 한다.
git config --list // 이메일 확인
git config user.email "이메일" // Github에 설정된 이메일로 맞춰준다.
git config user.name "이름" // Github에 설정된 이메일로 맞춰주는데, 굳이 안해도 되는 거 같음. 하지만 했음
git config user.username "이름" // Github에 설정된 이메일로 맞춰주는데, 굳이 안해도 되는 거 같음. 하지만 했음
2. 그리고 이미 다른 이메일로 설정된 상태에서 커밋,푸쉬하여 누락된 잔디를 살려보자.
git log에서 커밋 내역의 해쉬값 확인 ( q 누르면 나가짐)
git log --pretty=format:"%h = %an , %ar : %s" --graph
git rebase -i -r 가장최근커밋내역의해쉬값 // 이걸로 안 하고
or
git rebase -i -r --root // 이렇게 했음. 어떤 해시값을 하든 모든 내역이 나와서 그 중 수정할 내역에 대해서 edit으로 바꾸면 되는 거 같음.
PS D:\workspace\IdeaProjects\AlgorithemTest> git rebase -i -r --root
error: cannot rebase: You have unstaged changes.
error: Please commit or stash them.
변경 내역이 있으면 커밋 또는 stash 처리하라고 나옴.
저는 rollback하고 delete 처리 함.
처리 했으면 다시 rebase
git rebase -i -r --root // 아래와 같은 내용으로 vim이 열림
변경할 커밋 내역을 pick 대신 edit으로 수정
(인텔리제이 terminal 창 새로 길이를 늘려놓고 하면 좋다. 아래 내역으로 화살표 이동하면 vim이 이상해짐.. q! 나가고 다시 했음)
( a 누르고 편집 후 esc 누르고 :wq enter)
(커밋 내역에서 이메일 수정)여기서 오타 난 걸로 계속 수행해서 첨부터 다시 했음.. 오타 주의
git commit --amend -author "변경할 이름 <변경할 이메일>"
아래 vim이 나오면 변경할 우리는 이메일만 변경해줬고 내용 변경할 거 없으니 :q로 그냥 나가주면 됨
:q
다음 변경할 커밋할 내용으로 넘겨줌
git rebase --continue
위에서 edit으로 바꿔준 수만 큼 반복
git commit --amend -author "변경할 이름 <변경할 이메일>"
:q
git rebase --continue
더 이상 없으면 아래와 같이 나옴.
PS D:\workspace\IdeaProjects> git rebase --continue
fatal: No rebase in progress?
강제 푸쉬를 위해 +를 붙여준다.
$ git push origin +브랜치이름 // git push origin +master OR git push -f origin master
참고
[GIT] GitHub 잔디 누락 현상 및 해결 방법 (tistory.com)
github 잔디밭 안 심어지는 현상 해결 및 이미 커밋한 내용 반영하기 — wellbell의 개발일기 (tistory.com)
'개발환경, 도구 > Git' 카테고리의 다른 글
Git .gitignore 적용 안 되는 현상 해결 누가 해결좀.. (0) | 2023.07.21 |
---|---|
git 기초 정리 (0) | 2023.04.16 |
원격지의 최신 내용을 pull 하지 않아서 push 안 됨 (failed to push some refs to 'https://github.com/userId/userProject.git') (0) | 2022.12.05 |
이미 push한 commit 메세지 수정 (1) | 2022.11.16 |
git_github 설정 (0) | 2022.07.17 |