2016-07-05 2 views
0

커밋 된 커밋 C1 C2 C3 및 C4가있는 지점 A가 있다고 가정 해 보겠습니다. 내 필요성은 C2를 제거하고 다른 커밋에 의한 모든 변경 사항을 유지하는 것입니다.다른 커밋 변경을 없애지 않고 자식 커밋을 피하거나 제거하십시오.

단순한 방법으로 단일 코드 파일을 생각해 볼 수 있습니다. 여기서 커밋 C1에서는 functionOne을, C2에서는 functionTwo ...를 C4까지 도입했습니다.

제 아이디어는 C1 C3과 C4로 체리 따기를 사용하는 것이었지만 작동하지 않거나 최선의 해결책이 아닐 것으로 보입니다.

내가 원했던대로 도달 할 수있는 방법에 대해 누군가 알고 있습니까? 앞과 뒤 커밋 변경을 유지하는 지점에서 커밋을 피하거나 제거하는 가장 좋은 해결책은 무엇일까요?

+0

'git revert' 명령 - https://git-scm.com/docs/git-revert. 'git revert'는 변경을 되 돌리는 또 다른 커밋을 만듭니다. – dNitro

답변

2

interactive rebase : git rebase -i <origin-commit>을 사용할 수 있습니다.

커밋 목록에서 제거하려는 줄이있는 줄을 제거하기 만하면 제거 된 분기에서 제거됩니다.

사실 새로운 커밋을 생성합니다 (git을 사용하는 경우가 많음). 브랜치가 이미 공유되어 있으면 강제 푸시해야합니다.

관련 문제