2017-10-23 24 views
0

내 지점에서 커밋이 거의없고, 커밋 B, 커밋 C, 커밋 D, 커밋 E, 커밋 F가 맨 위에있는 지점에서 마스터 병합 내 커밋의 지금. A, B, C를 하나의 커밋으로 스쿼시하는 방법은 무엇입니까?마스터와 병합 된 지점에서 Git 스쿼시 커밋

master  -----D---E---F--\ 
work_branch \---A---B---C--* (merge-Point) 

그래서 당신이 가진 편집기를 엽니 다

git rebase -i 

머리가 대화 형 REBASE와

git checkout <sha1 at C> 

git checkout -b work_branch_2 

그리고 C에 지점을 만듭니다

+1

A, B 및 C 위에 병합 커밋이 있기 때문에 이는 까다로운 작업입니다. –

답변

0

그래서 당신이이 각 커밋에 수행 할 작업 목록 :

pick <sha1 A> comment A 
pick <sha1 B> comment B 
pick <sha1 C> comment C 

줄에 스쿼시에 의해 픽업을 교체 B에게 C를 저지

pick <sha1 A> comment A 
s <sha1 B> comment B 
s <sha1 C> comment C 

그래서 당신이 얻을 것이다 :

master  -----D---E---F--\ 
work_branch \---A---B---C--* (merge-Point) 
work_branch_2 \---A' 

내가이 후 대신 자식 REBASE를 병합의 리베이스 제안 master

참고 : 각 시도에 대해 원하는대로 분기를 만들려면 오른쪽 하나를 누르기 만하면됩니다.