2015-01-22 2 views
2

GitHub에서 분기 된 레포를 사용하고 있으며 때때로 here과 같이 실제 ("업스트림") 레포에서 작업을 병합해야합니다.- 스쿼시로 업스트림 리포를 병합하기

내 물건을 자동으로 병합-수 나중에 상류의 repo와 것이

git pull https://github.com/mixedinkey-opensource/MIKMIDI.git MIDIFiles --squash 

하지만 ... 같은 변경 사항을 스쿼시 싶어요? 아니면 내 squota 커밋은 내 repo가 ​​크게 상류의 repo와 다를지라도 변경 사항이 매우 적습니까? 명령

+0

'--squash'를 사용하면 병합 충돌 가능성이 높아질 수 있습니다. 왜냐하면 자식은 나중의 병합에 이전 공통 조상을 사용해야하기 때문입니다. 왜 당신이 이것을하고 싶어하는지 알 수 없습니다. 무엇을 성취하려고합니까? –

+1

@SvenMarnach 제가 일하면서 주요 레포가 수십 개의 커밋에 의해 발전하고 있습니다. 그들은 내가하고있는 일의 전후에 커밋을 할 것입니다. 나는 나의 역사를 깨끗하게하고 싶다. 그래서 나는 내가하고있는 것을 혼동하지 않는다. 어질러있는 git 히스토리는 읽기가 어렵지만, grep을 사용하면 그다지 좋을 지 모르지만, 이것은 번거로운 작업입니다. 말이 돼? –

+0

'--squash'를 사용하면 실제로 * your * 브랜치의 기록이 깨끗하게되지 않습니다. 병합 당 하나의 커밋을 얻을 수 있습니다. –

답변

2

Even for subtree, a pull --squash can be troublesome

는 원래의 repo에 PR (끌어 오기 요청) 지점을 병합 할 때 (순서대로 하나의 커밋 얻을), 적분기 측면에 대한 자세한 사용된다.
예를 들어 페이지의 "Merging a PR (yours or contributors)"

는 풀 요청이 커밋의 잠재적 다수의 원격 github의 지점에 해당합니다 기억하십시오.
이 경우 원격 커밋 기록을 스쿼시하여 여러 컨트 리뷰터의 커밋을 병합하는 대신 문제 당 하나의 커밋을 사용하는 것이 좋습니다.
동시에 PR을 닫을뿐만 아니라 스쿼시 커밋을 사용하는 것이 좋습니다.

귀하의 경우에는 이 아닌 스쿼시를 사용하는 것이 좋습니다.

관련 문제