2016-11-20 1 views
1

나는 자식과 함께 일하고 있었고 우연히 불필요한 상황을 만들었습니다. 이것은 내 자식 역사가 어떻게 생겼는지 보여줍니다.병합 된 분기 커밋을 제거 git에서

...a---b-------d---m---e... 
     \  /
     \-c-----/ 

브랜치를 제거하고 싶습니다. 방법은 중요하지 않습니다. 나는 자식 전문가가 아니며 많은 성공을 거두었습니다. 이상적으로 내가하고 싶은 :

a---b---d---m---e 

나는 역사를 보존하는 것이 중요하다 방법에 대한 강의가 필요하지 않습니다. c의 변경 사항은 지점이 될만큼 중요하지 않습니다.

답변

1

이 경우 rebase을 사용할 수 있습니다. 기본적으로 지점을 지정한 지점으로 다시 설정 한 다음 다시 재생하면 맨 위에 다시 커밋됩니다. 이 경우 커밋을 제외합니다. C :

git rebase -i HEAD~5 # 5 is the number of commits back to rebase 
# Comment out or delete the line for commit C 
# Save/proceed 

언급했듯이 기록 보존에 신경 쓰지는 않습니다. 이 프로세스는 C 이후 커밋에 대한 커밋 해시를 변경합니다.

관련 문제