Uing? Uing!!

[Git 삽질기록] Git push 이후에 작성자를 수정하고 싶을 때 본문

Git

[Git 삽질기록] Git push 이후에 작성자를 수정하고 싶을 때

Uing!! 2020. 9. 10. 21:36
반응형

서론

작업을 하다가 여태까지 계정을 제대로 설정하지 않은 상태로 잔뜩 push했다는 것을 깨달았다.

계정 정보가 잘못되어 다른 서비스로의 연동이 되지 않는 상황이었다.

결국 적절한 이름과 계정으로 여태까지의 commit들을 수정하게 되었다.

 

방법은 이전에 올렸던 'Git push 이후에 커밋 메시지를 수정하고 싶을 때'와 상당히 비슷하다.

(그래서 이전 게시글을 복붙해서 몇 부분만 수정하였다 ㅎㅎ)

 

본론

1. 커맨드 창에서 rebase를 사용해 수정 모드로 들어간다.

아래 줄은 '바로 직전'의 commit을 수정하고 싶을 때의 예시이다.

만약 바로 직전이 아닌 조금 더 전의 내용을 수정하고 싶다면 HEAD~2, HEAD~3처럼

HEAD~{지금보다 몇 번째 전의 commit부터 수정할지} 식으로 입력하면 된다.

git rebase HEAD~1 -i

(SourceTree라면 오른쪽 위의 '터미널' 실행)

 

2. i를 눌러 편집 모드로 들어간 뒤, 'pick'를 reword'로 바꾼다.

reword는 내용을 그대로 둔 뒤 커밋 메시지만을 수정하는 명령어이다.

따라서 편집 모등서 맨 앞의 pick를 edit로 수정한 뒤,

esc를 눌러 편집을 종료하고,

:wq!를 입력하고 enter하여 내용을 저장한다.

 

그러면 이전에 push해 놓은 commit을 수정할 수 있게 된다.

 

3. amend 명령어로 author 정보를 수정한다.

이제 본격적으로 작성자 정보를 수정하러 들어가서 입맛대로 수정을 한다.

아래 명령어를 입력하면 author 정보를 수정할 수 있다.

git --amend --author="{이름} <{메일}>"

예를 들어 git --amend --author="으잉 <uing@something.com>"이라고 입력할 수 있다.

이후 commit 메시지를 수정하라는 내용이 뜨는데,

:wq! -> enter하여 종료할 수 있다.

 

4. git rebse --continue로 나머지를 편집한다

git rebase --continue

이 문구를 쳤을 때, 2)에서 수정하겠다고 한 커밋이 여러개라면 다음 커밋을 수정하라는 내용이 나타난다.

추가 수정할 커밋이 있다면, 다시 3)의 방법으로 author 정보를 수정한다.

추가 수정이 없다면, 완료되었다는 문구가 뜰 것이다.

완료되었다는 문구가 뜨면 5)로 넘어간다.

 

5. git push --force 메시지로 덮어씌운다.

수정을 완료했다면 아래를 입력해서 수정된 커밋 메시지를 저장한다.

git push --force

입력 후 잠시 기다리면 push가 완료되었다는 메시지를 볼 수 있다.

완료 이후에 다시 버전을 확인하러 들어가 보면 원하던 작성자로 변경된 것을 볼 수 있다.

(SourceTree 기준으로는 '패치'를 통해 업데이트 내역을 바로 받아볼 수 있다.)

 

반응형
Comments