본문 바로가기

기타/Github

Github) 원격 저장소에 push 된 commit의 author 바꾸기 (1) - Rebase 이용하기

 

 

안녕하세여 소드립니다 :)

 

이번 포스팅은 저번 포스팅에 이어

원격 저장소에 push까지 해버린 commit의 author 정보 바꾸기 입니다!

 

이 내용을 정리한 블로그가 많긴 헀는데

직접 보고 따라해보니 잘 안되고 뻘짓도 하고 그랬어서

제일 간단하게 정리해볼라함

 

 

그럼 어떨 때 이 방식을 쓰느냐?

Github에 등록된 이메일

 

commit 해버린 Email

 

com이 아니라 con인거 보이시져?

네 뭐 이런식으로

이미 commit된 Author에 오타를 내거나 잘못된 이메일을 넣어서

깃허브에 등록된 이메일과 다른 상태로 remote 저장소에 push 까지 해버린 경우

(contributions 색칠도 안됨ㅋ)

 

뭐 이런 난감한 상황일 때 바꿀 수 있습니다

위 내용이 이해가 안가면 제 바로 전 포스팅을 보고 오세요

 

방법은 무려 3가지~~~~~!!!!!!!!!짞짞짞!!!!!!!!!!!!!!1

 

 

 

 

 

1. Rebase를 이용하기

(특정 몇 개의 커밋 정보만 바꾸고 싶을 때)

 

아마 내가 본 블로그 내용 중 90% 이상은 이 rebase를 이용한 거였어여

근데 이 방법은 위에도 써놨듯이

특정!!!! 몇 개의 커밋 정보만 바꾸고 싶을 때 쓰세여..ㅎㅎ

전 첨에 700개 육박하는 전체 커밋을 이거로 바꿀라 하다가 도저히 못하겠어서 때려침 (노가다임)

다 바꾸거나 할 땐 다음 포스팅의 방법들 쓰시길

 

쨌든

Rebase를 이용해서 바꾸기 ㄱㄱ

 

 

 ① 내가 바꾸고자 하는 Commit의 바로 전 Commit의 Identifier를 알기 

 

넹 우리가 알아야 하는 것은 Commit의 id입니다.

근데 그것도 내가 바꾸고자 하는 커밋의 id가 아닌,

그 바로 직전 커밋의 id ㅎㅎ;

 

 

 

● Commit id를 알아내는 방법

 

방법1) 터미널에서 해당 프로젝트를 열고 git log 명령어를 쳐서 나오는 commit 옆의 번호

 

 

방법2) Xcode에서 Source Control Navigator 클릭하면 나오는 commit 리스트에서 빨간 상자 (쳐놓은 것)

 

 

방법3) Sourcetree 커밋 란에 있는 것 (아래 빨간 박스에 써져 있는 것)

 

 

넹 commit id는 이제 뭔지 알겠져?

전 암것도 모르는 초보들도 위한 포스팅이라 자세하게 쓰는 것임

친절쓰가 바갈쓰

 

.

.

 

자, 우리는 commit2의 Author를 바꿔보기로 해요.

그럼 우리가 알아야 하는 이전 커밋 id는 바로

 

 

넹 뭐 이런 소리 입니다.

 

여기선  5ce0b93 (꼭 full name이 필요하지 않음)

우리가 알아내야 하는 commit id랍니다~!!!

 

 

 

 ② rebase 명령어 사용하기 

 

터미널 켜서 해당 프로젝트로 들어가시구요.

다음 명령어를 실행해 주세요.

 

  gimsoeuns-MacBook-Pro:CommitAuthChange soeun$  git rebase -i -p 5ce0b93   

 

여기서 5ce0b93은 위에서 알아낸 바꾸고자 하는 커밋의 이전 커밋 id입니다.

여러분들이 알아낸 커밋 id로 수정해서 진행 하세요.

복붙한다고 내꺼 따라치면 안돼여

 

그럼 무슨 다음과 같이 에디터 창이 뜰 거에연

그 창은 다음 단계에서 ㄱㄱ

 

 

 

 ③ pick -> edit 으로 수정하기 

 

바로 위 사진 있죠?

저기서 commit 마다 가장 왼쪽에 pick 이라고 되어 있어요.

우린 이것을 바꿔주어야 해요.

 

어떻게 바꾸냐구연?

 i를 누르면 수정이 가능해요.

(이정도는 알거라 믿지만🤤)

 

 

넹 위 사진과 같이 pick을 edit으로 바꿔주면 돼요.

바꾸고 싶은 커밋 모두 edit으로 바꿔주면 돼요.

저처럼 한개만 해도 되공 여러개 해도됨

 

자 이제 저장하고 나옵시다

esc키 한번 누르고 :wq를 치고 엔터 칩시다

그럼 변경 내용 저장되고 나와집니다

 

그럼 뭐 대충 이런거 뜨면 성공한거임

 

 

 

 ④ Author 수정하기 (노가다 하기)

 

자 터미널에 다음 명령어를 칩시다.

 

   gimsoeuns-MacBook-Pro:CommitAuthChange soeun$ git commit --amend --author="soeun <soeun@email.com>"   

 

제가 노란색으로 친 곳은 님들이 알아서 바꿔야 되는 부분이에여

soeun -> 바꿀 Author Name

soeun@email.com -> 바꿀 Author Email

 

자 그럼 다음과 같이 또 뭐가 뜨는데여

 

넹 제가 고치고자 하는 커밋의 Author 부분이 원하는 대로 수정되어 있죠?

이거 확인하고 ㅇㅋ 하면

:wq 치고 엔터 누르면 됨

 

 

그럼 이런거 뜨는데 그럼 성공한 거임

 

 

 

 ⑤ 다음 커밋도 수정 진행하기  

 

여러 개를 edit 할 경우엔  

다음 명령어를 쳐서 다음 edit에 대한 것도 rebase 해줘야해여

만약 1개만 바꿀거여도 아래 명령어를 입력해서 더이상 수정할 것이 없는지 확인 해주세여

 

  gimsoeuns-MacBook-Pro:CommitAuthChange soeun$ $ git rebase --continue  

 

넹 이 명령어 치면 다음 수정할 커밋으로 넘어가거든요?

그럼 ④ ~ ⑤ 번 계속 반복하면 됨ㅋ

 

만약

더이상 수정할 게 없을 땐

 

 

이 문구가 나오면 더이상 수정할 게 없는 거임

-끗-

 

 

 

 ⑥ 확인해보자 

 

git log를 통해 제대로 바꼈는지 확인해 봅시다

 

올ㅋ

제대로 바껴있군

 

 

 

 

 ⑥ git에 push 하기 

 

이제 이 수정사항을 git에 push 해주어야 합니당.

참고로 이렇게 rebase를 이용한 경우

강 제 로 push를 해줘야 함

 

     gimsoeuns-MacBook-Pro:CommitAuthChange soeun$ git push -f  

 

 

강제 push 하는 명령어 -f를 써줘야 하고

강제로 하는 만큼, 여러 명이 관리하는 프로젝트면 

정말 불가피한 사항 아니면 최대한 사용 안 하는 게 좋음

 

자 그럼 끝임

 

 

git에도 제대로 반영이 됐나 확인 해보면

 

기존 contributions 갯수 : 2개

 

 

변경 후 contributions 갯수 : 3개

 

아까 수정한 commt2가 제대로 반영돼서 contributions가 한개 증가한 것임

 

 

넹!!!!! 그럼 끝입니다

Rebase를 이용한 commit Author 바꾸기 어렵지 않ㅈㅕ?

 

 

근데 만약 커밋된 이메일을 전체 바꿔야 하거나

특정 이메일을 전부 바꾸고 싶으면

언제 저 rebase로 다 노가다 하겠어여

 

그럴 때 쓰는 방법은 Script를 이용한 방법인데,

이는 다음 포스팅에서 합시당



Calendar
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
최근 댓글
Visits
Today
Yesterday