요즘 인텔리제이로 코딩테스트 문제를 풀고 계속 푸시하고 있었는데,
레포지토리엔 푸시가 잘 되지만 이상하게 잔디는 안 심어지는 오류가 발생했다.
내가 한 공부가 기록이 되어야 공부할 맛이 나는 나로선,,, 당장 고쳐야겠다고 생각했다.
구글링을 해보니 나같은 사람들이 많았고,
내 깃허브의 Setting>Emails>Primary email address에 나오는 이메일과 IntelliJ에서 나의 이메일이 같아야한다고 했다.
git config --list
이 명령을 사용해 인텔리제이에서 나의 user.name="..."과 user.email="...@..."을 확인할 수 있다.
나의 경우엔 이메일은 일치했고, user.name이 의심이 갔다.
이렇게 내 깃허브 이름을 YeSeul로 언젠가 바꿨던 거 같은데,,
이메일 부분에선 문제 없다면, 아마 이름이 문제였던 듯 하다..
git config --global user.name "YeSeul"
user.name=yesue2로 되어있었고, 위의 명령으로 유저네임을 바꿔주었다.
user.name=YeSeul로 되는 거 까지 확인하고 다시 커밋 해보니 다시 잔디가 심어졌다!
그치만 이미 커밋했던 것들이 아까워서 살려서 잔디를 심을 순 없을까 더 검색해보니
rebase를 통해 심을 수 있다고 한다.
git log --pretty=format:"%h = %an , %ar : %s" --graph
이 명령을 사용하면 git log를 확인할 수 있는데,
로그들 중 잔디가 심어지지 않은 커밋 내역의 해쉬코드를
git rebase -i -p 해쉬코드
여기에 입력해서 변경해야하는 커밋들 앞에 pick을 edit으로 수정해준다.
여기서 오류 또 발생
fatal: --preserve-merges was replaced by --rebase-merges
Note: Yourpull.rebase
configuration may also be set to 'preserve',
which is no longer supported; use 'merges' instead 에러가 발생했다.
에러메세지를 잘 읽어보면 더이상 --preserve-merges가 지원되지 않고 --rebase-merges로 대체되었다고 나온다.해결방법
git rebase -i -p 해쉬코드
대신
git rebase -i -r 해쉬코드
코드를 사용해주어야한다.
pick을 edit으로 수정할 때 vim방식을 사용해야하는데, i를 눌러서 edit으로 수정해준 뒤 ESC를 누른 후 :wq를 누르면 변경사항이 저장된다.