현재 git 코드를 관리하기 위해 VSTS를 사용하는 회사에서 일하고 있습니다. 브랜치를 병합하는 Microsoft의 "권장"방법은 "스쿼시 병합"을 수행하는 것입니다. 즉, 해당 브랜치에 대한 모든 커밋이 모든 변경 사항을 통합하는 하나의 새로운 커밋으로 스쿼시됩니다.
문제는 한 백 로그 항목에 대해 한 분기에서 일부 변경을 수행 한 다음 즉시 다른 백 로그 항목에 대해 다른 분기에서 변경을 시작하려는 경우 해당 변경은 첫 번째 분기의 변경 세트에 따라 어떻게됩니까?
해당 백 로그 항목에 대한 브랜치를 만들고 첫 번째 브랜치를 기반으로 할 수 있습니다. 여태까지는 그런대로 잘됐다. 그러나 두 번째 분기에 대한 풀 요청을 만들 때가되면 첫 번째 분기가 이미 마스터로 병합되었으며 스쿼시 병합으로 수행 되었기 때문에 git은 많은 충돌을 표시합니다. 이것은 git이 두 번째 브랜치를 기반으로 한 원래 커밋을 보지 못하기 때문에 하나의 큰 스쿼시 병합을 보았 기 때문에 두 번째 브랜치를 병합하기 위해 마스터로 첫 번째 브랜치의 모든 커밋을 재생하려고합니다. 스쿼시 병합의 상단에 많은 충돌이 발생합니다.
그래서 내 질문은이 문제를 해결할 수있는 방법이 있습니까 (하나의 기능 지점을 다른 지점에서 기반을 두지 않고 내 워크 플로우를 제한하지 않는 것 이외) 또는 스쿼시 병합이 git의 병합 알고리즘을 깨뜨리는 것입니까?
feature1
마스터에 스쿼시 병합 한 다음feature2
나중에 병합하려고 할 때 발생하는 문제를 해결하지 못하는 것 같습니다 . 이 경우, gitfeature1
이 찌그러진 커밋 위에 커밋 을 다시 적용하려고 시도하는 동안 첫 번째 접근 방식으로 충돌이 발생하지 않는 반면, 두 번째 방법은 git이 커밋을 병합 할 필요가 없다는 것을 결정할 수있게합니까?