2014-09-24 2 views
2

우리는 각자가 지사에서 일하는 사람들과 함께 지사를 가지고있는 팀에서 일하고 있습니다. 그리고 우리는 몇몇 지사를 맡기고 --squash와 합병했습니다.병합 + 스쿼시가 MERGE_HEAD 변경되지 않습니까?

이제 '준비'분기에서 병합 된 분기를 삭제해야합니다.

문제는 'git diff'명령을 사용하여 브랜치를 볼 때 문제가 발생합니다. 스쿼시 된 모든 커밋은 병합되지 않습니다.

우리는 사용하여 병합 지점에 geting됩니다

git branch -a --no-merged staging | grep github | cut -d/ -f3 > /not-gihub.txt 

감사합니다!

+1

이것이 진짜 질문인지는 확실하지 않지만 'git merge --squash'는 병합 커밋을 생성하지 않으며 (문서의 오른쪽에있는 바와 같이)'MERGE_HEAD'를 업데이트하지 않습니다. 어느 한 쪽. 즉 병합 기계를 사용하여 병합 된 * 파일 *을 만들지 만 병합 된 * 기록 *은 만들지 않습니다. – torek

+1

@torek 제발 저에게 방법을 말해 주시겠습니까? 우리는 squashed 커밋을 포함하여 병합되지 않은 정확한 분기를 사용할 수 있습니까? –

+1

'--no-merged'는 병합되지 않은 브랜치를 찾습니다 : 당신은 바로 그 부분을하고 있습니다. 열쇠는 "스쿼시 병합"이 병합이 아니라는 것입니다. "스쿼시 병합"이라는 이름은 오해의 소지가 있습니다! – torek

답변

0

문서화 된 동작은 관찰하고 무엇인가

--squash

, man git-merge에서 생산 병합을 제외하고 실제 병합이 일어난 것처럼 작업 트리와 인덱스 상태 (사실) 을 커밋하지 않으려면 HEAD 을 레코드하거나 $ GIT_DIR/MERGE_HEAD를 레코드하십시오 ( 다음 git commit 명령으로 병합 커밋을 생성하십시오). 당신은 코드 (아마 수동)을보고 지점이 병합되어 있는지의 정보를 얻을 수있을 것이다, 그래서

조상 정보는, 힘내에 기록되지 않습니다.