2016-10-08 4 views
-2

만약 커밋을 하나의 커밋으로 스쿼시하고 싶다면.squashing 4 커밋 -`rebase master -i` 또는`rebase -i`

어떤 명령을 사용해야합니까?

나는 그들 사이의 차이를 이해하려고 노력했는데, 내가 잘못하면 나를 바로 잡으십시오.

git rebase -i HEAD~4 

마지막 푸시되지 않은 모든 로컬 커밋이있는 편집기가 열립니다.

그래서 나는 그들을 밀기 전에 그들을 스쿼시 할 수 있습니까?

대 실제로 현지 지점에 마스터에서 리베이스 않습니다

git rebase master -i 

,

여기에 이미 밀렸다 마스터 커밋을 볼 수 있으며 그들을 스쿼시하는 것은 좋은 생각이 아니다 있습니다. 이것은 피해야합니다. 밀어 넣은 커밋을 변경하는 것은 나쁜 습관이기 때문에

+2

900 개의 질문 후에 나는이 사이트가 어떻게 작동하는지 그리고 특정 질문을하는 방법을 이해할 것을 기대합니다. – PeeHaa

+0

미안하지만 너무 일찍 게시 됨 내 질문을 편집했습니다. –

+0

게시물에 4 개의 물음표가 있습니다. 그들 중 일부를 직접 풀어 봤나? 출력은 무엇입니까? 왜 당신의 질문에 대답하지 않았습니까? – PeeHaa

답변

0

마스터 (또는 다른 분기)를 리베이스 할 때 주어진 분기의 커밋을 현재 분기로 가져올 때. rebase -i 만 현재 분기 기록을 편집하고있는 경우. 편집기는 커밋을 삭제하거나, 커밋을 스쿼시하거나, 재정렬 할 수 있기 때문에 브랜치의 히스토리를 가지고 싶은 것을 묻습니다. 당신은 자식이 기본이 필요하기 때문에 HEAD~5에서 리베이스 할에서 스쿼시 커밋하고 4 스쿼시 원하기 때문에, 다음 5 전화 번호가

$ git rebase -i HEAD~5 

:에 특정 경우 , 당신은해야합니다.

편집기 화면에서 스쿼시 커밋을 찾고 상태를 pick에서 squash으로 변경하면됩니다. 그게 전부입니다.