저는 깃랩과 깃헙을 각각 다른 계정으로 사용했는데, 서로 다른 컴퓨터로 작업을 했기 때문에 문제가 없었습니다.
하지만 이번에 깃랩에서 작업하던 컴퓨터로 깃헙에 푸시를 하니 잔디가 안 쌓이는 문제가 생겼습니다.

깃 초기 설정과 관련된 이전 글

 

Git 기초 배우기

Git 기초 Git 초기 설정 최초 한 번만 설정합니다. 매번 git을 사용할 때마다 설정할 필요가 없습니다. 커밋 작성자 정보 등록 $ git config --global user.email $ git config --global user.name 커밋 작성자 정보 확

dongkeun2.tistory.com

 

문제점

깃헙에 잔디가 누락되었습니다...

커밋을 했지만
3개의 커밋
잔디는 2개

3개의 커밋을 했지만 잔디는 2개만 쌓인 것을 볼 수 있습니다.

 

처음엔 무엇이 문제인지 몰랐지만, 해당 컴퓨터에서 깃헙에 푸시를 한 것이 처음이라 깃 설정 문제라고 생각했습니다.

 

그래서 git log를 찍어보았고,

깃랩에서 사용하는 dongkeun으로 시작하는 email을 사용한 것을 확인할 수 있었습니다.

github에 등록된 3개의 email

깃헙에는 해당 이메일이 없기 때문에 잔디가 쌓이지 않았습니다.

 

해결 방법

일단 저는 두 개의 컴퓨터로 깃랩과 깃헙을 각각 작업하기 때문에,

하나의 컴퓨터에서 깃랩과 깃헙을 모두 사용하기 위해서는 해당 레포지토리에서만 email을 변경해야 했습니다.

가장 간단한 해결 방법은 remote repository에서 local로 config를 관리하는 것입니다.

$ git config --local user.email {변경할 email}

--local 옵션으로 해당 프로젝트에서만 github에서 사용하는 email로 변경해줍니다.

이렇게 global config는 변경되지 않고 해당 레포지토리에서만 적용할 수 있습니다.

 

이 후 commit은 잔디가 잘 쌓이는 것을 확인할 수 있습니다.

 

하지만 지금껏 잘못된 email로 올린 commit들은 아직 누락되어 있습니다.

이미 올라간 커밋들을 바꾸기 위해 rebase를 사용합니다.

$ git rebase -i {변경할 커밋의 hash값}^

email 변경 전에 push한 commoit들의 pick을 edit으로 바꾸고 저장합니다.

이 후 적용할 이름과 이메일을 입력하고 저장합니다.

(해당 명령어 입력 후 :wq로 저장하고 나옵니다.)

$ git commit --amend --author="{이름} <{이메일}>"
// git commit --amend --author="DongKeun2 <devdk9695@gmail.com>"

이제 continue로 작업을 넘겨줍니다.

$ git rebase --continue

edit으로 변경한 커밋의 수만큼 continue를 끝내고 브랜치 앞에 +를 붙여

변경사항을 강제로 푸시해줍니다.

$ git push {remote} +{branch}
// git push origin +master

 

짜잔 커밋의 프로필이 달라지고 잔디도 살아났습니다.

첫번째 이미지 커밋에 프로필 사진이 생겼다.

 

+ Recent posts