커밋 메시지를 모두 변경하여 다른 언어로 바꾸고 싶습니다.
git-filter-branch --msg-filter를 사용하여이 작업을 수행 할 수 있음을 알고 있지만 메시지를 어떤 패턴으로 바꾸려하지 않고 내 편집기에서 각 커밋 메시지를 열고 싶습니다. 그것을 저장하고, 내가 git-rebase --interactive에서 reword를 사용할 때처럼.
커밋 메시지를 모두 변경하여 다른 언어로 바꾸고 싶습니다.
git-filter-branch --msg-filter를 사용하여이 작업을 수행 할 수 있음을 알고 있지만 메시지를 어떤 패턴으로 바꾸려하지 않고 내 편집기에서 각 커밋 메시지를 열고 싶습니다. 그것을 저장하고, 내가 git-rebase --interactive에서 reword를 사용할 때처럼.
git filter-branch --msg-filter 'cat > ~/msg &&
vim >&2 <&1 ~/msg &&
cat ~/msg' HEAD^^^^..HEAD
이렇게하면 vim을 사용하여 최근 4 회의 커밋 메시지를 편집 할 수 있습니다. 두 번째 백업을 덮어 쓰는 경우 -f
을 추가하십시오.
감사합니다. :) – danillonunes
분기를 리베이스하면 임의의/모든 커밋 메시지를 편집 할 수 있습니다.
Git의 까다로운 점은 커밋 메시지를 커밋의 일부로 사용하기 때문에 분기가 분기됩니다.
그냥 (지사에) 수행
git rebase -i master
또는 당신이 에디터되게됩니다 때 저지른 병합 (감사 danillonunes 아담 D.)
git rebase -i master --preserve-merges
을 유지하려는 경우, 첫 번째 열을 pick
에서 edit
으로 변경하면 모든 커밋 메시지를 변경할 수 있습니다.
리베이스의 문제는 병합 커밋을 보존하지 않는다는 것입니다. 이제 당신은 그렇게 말했고, 나는 git 문서를 검색하여 사용할 수있는 --preserve-merges 매개 변수가 있다는 것을 알았으므로 git rebase -i --preserve-merges와 함께 작동해야합니다. 팁 주셔서 감사합니다. – danillonunes
병합 커밋을 유지하지 않는 것에 대해 알지 못했습니다. 내 자식 repos는 레드 우드처럼 보입니다. – willoller
'git rebase --preserve-merges' –
왜 rebase를 사용하지 않습니까? – kan
Rebase는 병합 커밋을 보존하지 않습니다. 아래 willoller 내 대답을 참조하십시오. – danillonunes