program tip

단일 커밋의 일부로 여러 커밋을 되 돌리는 방법

radiobox 2021. 1. 6. 07:59
반응형

단일 커밋의 일부로 여러 커밋을 되 돌리는 방법


이것은 중요한 문제가 아니라 가능한지 여부를 알고 싶은 것입니다.

이제 우리는 두 커밋, 있다고 가정 해 봅시다 abcd123wxyz789멀리 다시 환매 특약의 역사에서, 인접하지 않은 별도의 장소에서 발생. 이제 되돌리고 싶다고 가정 해 보겠습니다. 하기

git revert abcd123 wxyz789

두 개의 개별 커밋이 발생합니다. 하나는 되돌리고 abcd123다른 하나 는 되돌 wxyz789립니다.

이것은 모든 잘 잘하지만, 우리가 두 커밋에서 수정하려는 실수가 논리적으로, 자기 문서의 목적을 위해 연결되어있는 경우, 우리는 하나 하나 "를 포함하는 커밋 하나 하나하고 싶습니다 무엇을 내가 이제 뭔가를 파산을 파일 x, y 및 z "코멘트를 되돌리고 있습니까? 이 작업을 수행하는 git 명령이 있습니까?

(물론 모든 변경 사항을 수동으로 수정 한 다음 푸시하는 커밋을 생성 할 수 있음을 알고 있습니다. 이것은 모든 불명확 한 이유로 고통 스럽습니다.)


넌 할 수있어:

git revert abcd123
git revert --no-commit wxyz789
git commit --amend

... 그런 다음 두 커밋을 되 돌리는 결합 된 효과를 설명하는 적절한 커밋 메시지를 작성합니다.


서로 변경되는 복잡한 되돌리기의 경우 revert --no-commit문제가 될 수 있습니다.

내 간단한 해결책은 실제 되돌리기와 스쿼시를 수행하는 것입니다.

git revert <all commits>
git rebase -i

그런 다음 squash첫 번째를 제외한 모든 되돌리기를으로 표시 하여 단일 커밋을 만듭니다.


git revert -n <commits>
git commit

첫 번째 명령은 커밋을 생성하지 않고 모든 되돌리기를 수행하고 최종 결과를 준비합니다 (-n 옵션). 그 후 commit 명령은 단일 커밋을 생성합니다.

참조 URL : https://stackoverflow.com/questions/10415565/how-to-revert-multiple-commits-as-part-of-a-single-commit

반응형