2015-02-07 2 views
-1

최근에는 실수로 잘못된 전자 메일 주소로 커밋을 서명하기 위해 msysgit의 사인 오프 기능을 사용하고있는 것으로 나타났습니다. 불행히도 커밋을 이미 GitHub 저장소에 푸시했습니다.모든 커밋 메시지에 전자 메일 주소 바꾸기

모든 커밋 메시지에서 잘못된 전자 메일 주소를 제거 (또는 적어도 교체) 할 수있는 방법이 있습니까? 나는 틀린 전자 우편의 아무 흔적도 남겨 두지 않는 것을 선호 할 것이다.

.git 디렉토리와 그 하위 디렉토리의 모든 파일에서 모든 전자 메일 주소를 바꿔서 시도한 결과 git push --force --tags origin 'refs/heads/*'을 사용하여 변경 사항을 적용했지만 작동하지 않는 것 같습니다.

참고 : 나는 GitHub 저장소의 소유자입니다. 현재 개인 프로젝트입니다. 아무도 그것에 대해 노력하고 있지 않습니다.

+1

변경을 확인하지 않고 모든 참조를 업데이트 할 수 있습니다이 저장소에 최선을 다하고 사용자의 경우 필터 지점을

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 "[email protected]"; else git commit-tree "[email protected]"; fi' HEAD ' 

를 사용해야합니다 이렇게하면 커밋이 다시 작성되어 저장소에서 가져온 사람들이 혼란을 겪을 수 있으며 로컬 변경 사항을 적용 할 수 있습니다. 새로운 커밋은 이전 커밋과 다를 것입니다. 어쨌든 계속 진행하려면 ['git filter-branch'] (https://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html)를보십시오.). –

+0

https://help.github.com/articles/changing-author-info/ – Joe

+0

@AndrewC 커밋의 작성자를 변경하고 싶지는 않습니다. 커밋 메시지를 변경하고 싶습니다. – Spookbuster

답변

-1

당신은 당신이 단순히 이전 내용

git filter-branch -f --env-filter ' 
    GIT_AUTHOR_NAME="Newname" 
    GIT_AUTHOR_EMAIL="newemail" 
    GIT_COMMITTER_NAME="Newname" 
    GIT_COMMITTER_EMAIL="newemail" 
    ' HEAD 
+0

그리고 이전과 같은 방법을 사용하여 밀어? – Spookbuster

+0

가장 좋은 방법은 분기를 삭제하고 다시 추가하는 것입니다. – CodeWizard

+0

강제 푸시와 삭제/다시 작성의 차이점은 무엇입니까? 차이점을 염두에 두는 github 기능이 있습니까? – michas