다들 이 문제 때문에 들어왔을 것이다.
분명 리셋했는데 로그엔 아직 그대로 남아있음
급하디 급한 개발자님들을 위한 해결 방법
아래 복붙
git update-ref -d HEAD
git rm --cached -r .
재커밋 후 푸시하면 된다.
단, 원격에도 커밋이 되어 있다면 강제로 푸시해 줘야 함.
저번에 깃허브에 푸시한 리포지토리에 잘못 작성된 값이 있었다.
바로 작성자인데 내가 원하는 이름이 아니었음.
지금 맥북 이름이 올라가서 이걸 수정하기로 함
깃 세팅에서 글로벌 세팅을 안 하고 푸시하면 지금 사용하고 있는 컴퓨터의 이름으로 작성자가 되어 있는 것을 볼 수 있다.
이제 다시 수정을 해야 하는데 깃허브에 푸시가 되어 있기도 하고 첫 번째 커밋이기도 해서 강제로 수정하려고 한다
여기서 중요한 건 reset은 함부로 사용하면 안 된다는 것, 다시 되돌리기가 힘드니까 신중히 해야 한다. 지금처럼 막 사용해도 상관없을 때만 사용해야 함
더 자세히 알고 싶으면 여기로
위험하지만 강제로 사용하는 법도 알아야 하니까 이제 시작해 봄
커밋 취소는
git reset HEAD^
또는
git reset --hard "commit ID"
이렇게 하라고 나오는데 git reset HEAD^는 바로 직전 커밋 삭제 하는 건데 이상하게 에러가 뜸
그래서 두 번째 방법으로 했는데 여전히 커밋이 그대로임.
알고 보니까 첫 번째 커밋은 이렇게는 안되고 다른 방법으로 해야 함
아래 복붙
git update-ref -d HEAD
git rm --cached -r .
이제 작성자를 변경해줘야 하는데 그건 여기서 확인할 수 있음
다시 커밋하고 푸시하자
커밋을 했으면 이제 푸시를 해야 하는데 강제로 푸시를 하려면 차이점이 하나 있다
바로 -u 대신에 -f 사용
푸시가 정상적으로 동작함
깃허브에 정상적으로 수정되었고 1 커밋으로 되어있는 것을 확인할 수 있음.