2014-10-28 5 views
10

몇 가지 이유로 git 저장소의 전체 기록을 다시 작성하여 모든 커밋의 committer_id를 변경해야합니다. 그러나, 커밋마다 다소의 메모를 첨부하고 git-filter-branch를 사용하여 committer_id를 변경하면 새로운 커밋이 논리적으로 생성되어 메모가 남게됩니다. 일치하는 새 커밋에 메모를 복사하는 방법이 있습니까?git 필터를 사용하여 기록을 다시 쓸 때 git 노트 유지

thread 비슷한 질문을 보이지만 여러분의 도움에 감사드립니다 2011 년

에 해결책 남겨졌다!

+2

당신이 OLD_SHA-> NEW_SHA의 목록을해야합니까 : 당신은 또한 더 이상 설명이 유래 스레드를 볼 수 있을까? 또는 GIT_COMMITTER_NAME 만 변경했기 때문에 원본 참조 및 대체 참조에서'git rev-list'를 할 수 있습니까? 하나는 옛날 -> 새로운 샤를 매핑 문제가 사소한해야합니다. –

+0

좋은 생각, 나는 그것을 이런 식으로 생각하지 않았다. 감사! – Kiplaki

답변

1

아마도 문제는 git-notes가 원하는대로 작동하도록 몇 가지 추가 설정이 필요하다는 것입니다. 다시 작성된 커밋에 원본 복사 노트 커밋을 다시 작성하는 경우

GIT_NOTES_REWRITE_REF

: https://git-scm.com/docs/git-notes#git-notes-notesrewriteRef : 당신은 아마 문서에서

git config notes.rewriteRef refs/notes/commits 

변수이 구성이 필요합니다. 콜론으로 구분 된 목록 (ref35 또는 globs) 이어야합니다.

환경에 설정되지 않은 경우 복사 할 메모 목록은 notes.rewrite에 따라 다릅니다. 및 notes.rewriteRef 설정.

기본적으로 힘내는 원래 커밋의 메모를 다시 작성중인 새로운 커밋으로 이전 할 수있는 권한이 있어야합니다.

Is there a way to automatically merge notes if commits for those notes get squashed?