Git : ‘git reset’후 커밋 메시지를 재사용 / 보존하는 방법은 무엇입니까? 수정 커밋에

Git 사용자로서 나는 정기적으로 상황을 발견하고 수정 커밋에 맞지 --amend않거나 rebase -i수정 커밋에 맞지 않는 방식으로 하나 이상의 커밋을 재 작업해야합니다 . 일반적으로 나는 다음과 같이 할 것입니다.

git reset HEAD~1
# hack, fix, hack
git commit -a
# argh .. do I need to retype my message?

나는 현명하게 구성된 커밋 메시지를 매우 진지하게 생각합니다. 일반적으로 변경에 대한 참조 및 근거가있는 더 큰 텍스트를 포함합니다. 지금까지 정렬되지 않은 git reflog, git log복사 및 붙여 넣기 프로세스 를 통해 오래된 커밋 메시지를 복구하는 데 오랜 시간이 걸리는 프로세스에 상당히 짜증이났습니다 .

이 문제를 해결하는 것이 더 좋은가요? 내 커밋이 두 개 이상이면 어떻게 될까요?

편집 : 이것에 대해 조금 생각한 후 내가 찾고있는 것은 수정 / 수정 커밋이 적절하지 않은 커밋 메시지에 대한 git stash 와 같은 기능 이라고 생각합니다 .



답변

git reset,이 한 줄은 그것을 할 수 있습니다 :

git commit --reuse-message=HEAD@{1}

또는 더 짧습니다.

git commit -C HEAD@{1}

@ user2718704에서 제공하는 다른 옵션을 사용할 수 있습니다 .


답변

“git commit”명령을 실행할 때 다음 옵션을 확인해야합니다.

재사용하려면

--reuse-message=<commit>

재사용시 편집하려면

--reedit-message=<commit>

작성자를 변경하려면

--reset-author

답변

해킹, 수정, 해킹하고 실행할 수 있다면 왜 재설정하십시오 git commit --amend --no-edit. 따라서 원래 커밋 메시지를 유지합니다.

여러 커밋에 대해 작동하게하려면 최신 변경 사항으로 임시 커밋을 만든 다음 대화식 리베이스를 사용하여 이전 커밋의 커밋 메시지를 유지하면서 새 임시 커밋으로 이전 커밋 (좋은 커밋 메시지 포함)을 스쿼시합니다.


답변

git commit --reset-author -c <commit>커밋 메시지를 편집 및 현재 시간과 함께 재사용하려면을 고려할 수 있습니다.