컴공생의 다이어리

[Git] 커밋(commit)들의 특정 작성자(Author) 일괄 변경 본문

Development/Git

[Git] 커밋(commit)들의 특정 작성자(Author) 일괄 변경

컴공 K 2022. 2. 25. 00:01

Git 커밋(commit)들의 특정 작성자(Author) 일괄 변경

아래 게시물에서 커밋의 작성자를 일괄적으로 변경하는 방법(모든 커밋의 작성자를 변경)에 대해 정리한 적이 있다. 오늘 게시물에서는 나와 여러 사람들이 있는 커밋들 사이에서 나의 커밋 정보(작성자, 이메일) 즉, 특정 작성자의 정보를 변경하는 방법에 대해 정리하고자 한다. 이 방법 또한 같이 협업을 진행하고 있는 상황에서 독단적으로 처리하는 것은 위험하다. 프로젝트가 진행중이거나 의논이 필요한 상황이라면 협의를 하고 진행하는 것을 추천한다.

 

[Git] 커밋(commit)들의 작성자(Author) 일괄 변경

Git 커밋(commit)들의 작성자(Author) 일괄 변경 커밋들의 작성자를 일괄적으로 변경하는 방법이지 여러 사람과 했던 커밋들에서 나의 커밋만 변경하는 방법이 아니다. 또한 이 커밋들이 이미 원격저

computer-science-student.tistory.com

 

 

아래 명령어에서 OLD_NAME에 바꾸려고 하는 대상인 작성자명을 넣고 CORRECT_NAME에 바꿔질 작성자 명을, CORRECT_EMAIL에 바꿔질 이메일을 채우고 한번에 그대로 복사해서 명령어를 입력하면 변경될 것이다.

git filter-branch --env-filter '
OLD_NAME="바꿀_대상의_작성자명"
CORRECT_NAME="바꿀_작성자명"
CORRECT_EMAIL="바꿀_이메일주소"

if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' -- --all

 

아래는 위에 있던 명령어에 대한 예시이다. 설명하자면, 커밋 작성자 이름이 Kang인 것에 대해 작성자명을 Kkk로 변경하고 이메일 주소를 kkk@gmail.com으로 변경한다는 명령어이다.

# Example
git filter-branch --env-filter '
OLD_NAME="Kang"
CORRECT_NAME="Kkk"
CORRECT_EMAIL="kkk@gmail.com"

if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' -- --all

 

 

 

혹시나 아래와 같은 에러가 발생한다면 git filter-branch --env-filter ' 을 git filter-branch -f --env-filter ' 로 변경해서 실행시키면 된다.

Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f

 

 

 

 

https://melkia.dev/ko/questions/750172?page=3 

 

git-filter-branch - git commit --amend - Git에서 여러 커밋의 작성자 및 커미터 이름과 전자 메일을 변경하

 

melkia.dev

https://github.com/HomoEfficio/dev-tips/blob/master/Git-%EC%97%AC%EB%9F%AC-commit%EC%9D%98-author%EB%A5%BC-%EB%B0%94%EA%BE%B8%EB%8A%94-%EB%B0%A9%EB%B2%95.md

 

GitHub - HomoEfficio/dev-tips: 개발하다 마주쳤던 작은 문제들과 해결 방법 정리

개발하다 마주쳤던 작은 문제들과 해결 방법 정리. Contribute to HomoEfficio/dev-tips development by creating an account on GitHub.

github.com

 

728x90
Comments