git

[git] 깃 작성자 이메일 이름 변경 (git rebase author 변경)

여미미 2021. 3. 26. 14:40

 

git에 올렸지만 생각해보니 작성자가 다르다..

 

 

 

깃을 사용할때 소스트리를 사용하는데

정신없이 작업을 하다보니 중간에 회사계정이 아닌

나의 계정으로 커밋된 목록이 보인다

 

크게 문제는 될것이 없지만

git 에 커밋작성자를 변경할 수 있는 기능이 있으니 

사용해보고 기록한다 

 

참고 :

madplay.github.io/post/change-git-author-name

 

git commit author 변경 (커밋 작성자 변경하기)

git commit 작성자를 잘못 입력하여 push까지 해버렸다. 커밋 작성자의 이름을 다시 바꿀 수 있을까?

madplay.github.io

 

 

(흐름)

1.git rebase -i 커밋해쉬값^

2. pick --> edit 변경

3.git commit --amend --author "이름 <이메일>"

4.git rebase --continue

5.git push origin +master

 

 

참고 사이트에 내용대로

 

git rebase -i 커밋해쉬값^

 

을 입력하면 editor로 변경되고

insert 키로 --> (insert, re )로 변환되는데

해당 커밋값에 pick이라고 되는 부분을

edit 으로 바꿔준다 

수정이 다되면 esc 키를 누르고 

:wq

입력하면 editor를 종료해야하는데

나는 esc키를 누르기전 다른키를 누르다가

뭔가 내용이 지워졌는데 지워진 내용는 못보고 

그래서 뭔가 꼬이기 시작했다...

 

git rebase --continue

를 진행해도 edit 을 투두하라는 내용이나왔는데

 

 

아래 

git rebase --abort

구문이 rebase 취소 구문이다 

 

이상태에서는 처음부터 rebase를 진행한다고해도 뭔가 아직 rebase 디렉토리 안에 있어서

제대로 실행될수 없는것처럼 보였다

 

rebase --aboart

해주면 다시 master 디렉토리로 변경되었다 

 

rebase 할 커밋내역은 한 20개내외였는데

혹시 editor에서 이렇게 한번 수정이 가능한지 시도해보았다 

 

진행되는가 싶더니 마지막 메세지도 뭔가 된듯 보이지만 

디렉토리 1/90 , 2/90 , 3/90...

디렉토리 위치가 뭔가 이상스러워서 abort로 다시 취소시켰다 

 

3개정도 커밋을 변경하였는데

소스트리에 pull 과 push 가 새로 업데이트 알림이 생겨서

pull --> push 순서대로 진행했다 

 

원격저장소를 하나 gitlab주소로 더 가지고 있었는데

아마 이부분에서 세컨드 원격과 충돌이 일어났을꺼라 추측해본다

왜냐하면 디렉토리 위치가......

 

 

내경우엔 git merge --abort 로 master 폴더로 돌아왔고

rebase 작성자변경은 한커밋씩 진행하기로 한다 ^^;;

 

edit 수정후 

esc 하면 텍스트를 수정란에서 나오게 되며

커서가 없어도 :wq 이라고 입력하면 editor는 종료된다

 

git commit --amend --author "변경할 이름 <변경할이메일>"

입력하고 

 

git rebase --continue 를 진행하면

로딩이된다

 

완료되면

git push origin +브랜치이름

 

넣어주면 작성자명이 변경된것을 확인해보자!

 

 

소스트리로 적용상태를 (변경된 커밋) 을 확인하는데

바로바로 적용이 안되는 걸 (갱신) 음...되지 않은건가

 

라고 생각하고 중복적으로 한커밋을 여러번 작업하기도 했다

 

그런데 포기할때쯤 git bash를 닫고 다시 열어보니

변경된 커밋이 짠 하고 나타났다

 

내경우에 그랬는데 혹 갱신이 안되었다고 무한 중복 rebase를 하기 전에

complete메세지를 보고 진행사항이 궁금한데 갱신이 안된 경우

참고!

 

 

그리고 연속적으로 rebase 작업시 내가 지정한 커밋해쉬값과 

다른 해쉬값이 editor에 나올때도 있었다

rebase하면 git이 해쉬값을 새로 생성하니 그냥 작업해도 될것 같다 !

 

 

* 기존에 rebase해야 할 작성자 변경은 20개정도되었는데

브랜치도 있었고 마스터도 있었다

진행하다보니 중간에 conflict도 생기고 branch라서 그런건지

이유는 파악하지 못했지만

조심히 사용해야할것같다 나는 rebase를 진행하다 conflict나는 부분은

변경하지 않기로했다 커밋이 중복으로 올라가고 현 프로젝트에 꼬이는 느낌을 받았다 

 

처음에 적용이 너무 잘되서 문서작업하는것처럼 후딱 헤칠우려고 하다보니

어딘가에서 실수가 난것일수도 있고 

 

조심해서사용해야겠다!

 

 

결론 : 위에 조심해야할 사항은 다른 원격이 있을경우 로컬 master인줄 알고

원격을 rebase를 진행했다 로컬 브랜치가 분리되어서 head로 분리되는 경험을 하고

conflict를 해결하며 master 브랜치로 병합하고 복구하는데 

많이 기능들이 원격의 시점에서 잘못머지되어 새기능들을 다시 작업해야했다

 

 

여러 원격저장소를 연결해서 사용할 경우 !

원격 커밋을 피해서 잘 rebase 해야 할것 같다 !