저는 지점이 있고, 거의 모든 커밋에 잘못된 이메일이있었습니다 "[email protected]"
그 이메일을 현재 이메일 "[email protected]"
으로 변경하고 싶었습니다.힘내 - 지점 커밋 내역이 중복되었습니다
git filter-branch --commit-filter 'if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ];
then
export GIT_AUTHOR_NAME="Sandrina Pereira";
export [email protected];
export GIT_COMMITTER_NAME="Sandrina Pereira";
export [email protected];
fi; git commit-tree "[email protected]"'
See here the difference between COMMITTER and AUTHOR :
검색하는 동안, 나는이를 발견했다. 실제로 커밋 권한을 변경하는 것이 중요합니다. 그렇지 않으면 위트가 mynew
커밋을 수행했음을 oldnew
원래 커밋이라고 표시합니다. 그리고 저자와 커미터를 모두 변경하고 싶습니다.
그렇다면 나는 git commit -am "change author"
, git pull
및 git push
을했습니다.
문제는 당신이 can see here
내가 그 커밋을 삭제하는 방법을 검색하고 내가 이것을 발견 지금 내 모든 커밋이 중복되어 있다는 것입니다 :
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ];
then skip_commit "[email protected]";
else git commit-tree "[email protected]";
fi' HEAD
그러나 나는 아직 그것을 시도하지 않았다 .. 어떻게해야합니까?
그리고 다음 번에 전자 메일 커밋을 바꾸려면이 혼란을 피하기 위해 올바른 명령이 무엇입니까?
다시 설명해 주셔서 감사합니다. 나는 git 전문가가 아니므로이 명령은 여전히 안개입니다. 나는 그 질문을주의 깊게 읽고이 혼란을 해결하려고 노력할 것이다. –
내가이 상황에 처한 경우, 내가 시작한 곳으로 돌아 가려고합니다. 아마도 당신은 아주 비슷한 다른 지류를 가지고있을 것입니다.작업이 끝나면 강제로 밀어 넣으십시오. 리모컨에서 물건을 꺼내지 마십시오. 'filter-branch' 후에는 브랜치의 오래된 리모트 버전을 유효하게 처리해야합니다. –
와우, 좋은 생각 이니, 나는 또 다른 가지를 가지고있다. 나는 그 사본을하고 당신이 말한 것을 시도한 다음 그것을 강제로 병합하도록 강요 할 것입니다. –