간단한 방법 (혼자만 하는 프로젝트의 경우) ; *nix 용 ( + windows msys )
- 해당 repository 의 모든 커밋의 author/committer name 및 email 을 특정값으로 바꾼다.
git filter-branch --env-filter '
GIT_AUTHOR_EMAIL=yourname@gmail.com;
GIT_AUTHOR_NAME=yourname;
GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL;
GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME;' -- --all
> 위험하다고 해도 remote 에 push 만 안하면 되니, 아주 큰 부담은 가질 필요가 없지만 내 모든 local
commit 들이 push 되었는지 정도는 확인하자.
간단한 방법 (혼자만 하는 프로젝트의 경우) ; windows cmd 용
- 해당 repository 의 모든 커밋의 author/committer name 및 email 을 특정값으로 바꾼다.
git filter-branch --env-filter "
GIT_AUTHOR_EMAIL=yourname@gmail.com;
GIT_AUTHOR_NAME=yourname;
GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL;
GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME;" -- --all
> 위험하다고 해도 remote 에 push 만 안하면 되니, 아주 큰 부담은 가질 필요가 없지만 내 모든 local commit 들이 push 되었는지 정도는 확인하자.
안전한 방법 (같이 하는 프로젝트의 경우) ; *nix 용 ( + windows msys )
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ];
then
GIT_COMMITTER_NAME="<New Name>";
GIT_AUTHOR_NAME="<New Name>";
GIT_COMMITTER_EMAIL="<New Email>";
GIT_AUTHOR_EMAIL="<New Email>";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
안전한 방법 (같이 하는 프로젝트의 경우) ; windows cmd 용
git filter-branch --commit-filter "
if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ];
then
GIT_COMMITTER_NAME="<New Name>";
GIT_AUTHOR_NAME="<New Name>";
GIT_COMMITTER_EMAIL="<New Email>";
GIT_AUTHOR_EMAIL="<New Email>";
git commit-tree "$@";
else
git commit-tree "$@";
fi" HEAD
다른 방법 찾기
구글에서 git filter-branch rename author 으로 검색해보자.
git 에서 복잡하게만 수행해야 할 것 같은 (reset, amend 등을 조합해서) 것을 쉽게 할 수 있는 몇가지 방법을 제공한다.
http://stackoverflow.com/questions/750172/how-do-i-change-the-author-of-a-commit-in-git