2015-01-26 4 views
6

나는 커밋을했는데 CM을 작성한 다음 여러 패치를 적용했습니다 (P1P2). C1C2는 이전의 두 커밋이있는 곳 하나의 커밋을 모든 커밋의 맨 위로 옮깁니다.

C1-C2-CM-P1-P2 

처럼 그래서 내 역사는 보인다.

문제는 커밋을 위해 패치를 만드는 것을 잊었다는 것입니다. 내 커밋 CM을 커밋 맨 위로 이동하는 방법? 기록은 다음과 같아야합니다.

C1-C2-P1-P2-CM 

답변

7

아직 지사를 밀어하지 않은 경우, 당신은 대화 형 REBASE 수행 할 수 있습니다

git rebase -i C2 

그런 다음 P1-P2-CM로 커밋 순서를 변경할 수 있습니다, 그리고 C2의 상단에이를 다시 적용합니다.

4

rebase -i을 사용할 수 있습니다.

$ git rebase -i HEAD~5 

최신 5 가지 커밋으로 텍스트 편집기가 열립니다. 원하는 순서대로 커밋의 순서를 변경 한 다음 저장하고 닫습니다.

+0

HEAD ~ 3 또는 C2 (내 답변에서 언급했듯이) 충분해야합니다. – VonC

1

git rebase -i C1을 실행 한 다음 편집기에서 팝업되고 커밋의 순서를 바꾸고 저장하고 종료하십시오. 충돌이나 사물이 없다면 재주문 할 것입니다.

+0

왜 C1입니까? C2 (내 답변에서 언급했듯이) 여기 충분해야합니다. – VonC

+0

해야합니다. 나는 내가 처음 볼 수있는 커밋을 골랐다. –