2017-11-01 1 views
0

에 병합 요청의 모든 커밋을 "병합"할 수 있고, 정말 열심히 코드를 검토한다. 이 MR이 이미 Gitlab에 있더라도 우리는 어떻게 든이 30 개의 커밋을 모두 하나의 커밋으로 "그룹화"하거나 "병합"할 수 있습니까?우리는 어떻게 든 우리는 때때로 어떤 하나의 MR 30 개 커밋을 가지고 우리의 Gitlab에 요청을 병합 한 하나

가능합니까? 나는 그것이 의미가 있기를 바랍니다. 감사합니다.

+1

예. 'git merge --squash'는 정확하게 그것을합니다. [이 질문] (https://stackoverflow.com/questions/5308816/how-to-use-git-merge-squash)을 참조하십시오. – kowsky

답변

1

끌어 오기 요청을 변경할 수 없습니다 (소유하지 않은 트리를 나타냄). 그러나 끌어 오기 요청을 나타내는 분기를 체크 아웃하고 모든 커밋의 스쿼시를 병합 할 수 있습니다 (git merge --squash).

그럼에도 불구하고, 나는이 일을하지 않는 것이 좋습니다 것입니다 : 커밋 개별적으로 수행한다면, 이것은 아마도 수행 약간 증가 일이 있었다는 것을 의미한다. 이제 작업이 완료되고 증분보기가 쓸모가 없다고 생각할 수 있습니다. 그러나 이것은 역으로 발생합니다. 회귀가 발생하거나 의 코드를 나중에 찾을 경우 일 때 코드가 병합되었고 작은 커밋을 사용하면 "병합 기능 XXXX"을 말하는 6000 줄의 커밋보다 훨씬 쉽게 이해하는 데 도움이됩니다. 작은 패치를 검토하는 것이 거대한 패치보다 훨씬 효율적이라면 (더 빠르다는 것은 아닙니다. 수정 사항이 작을 때 더 많은 문제점을 발견하고 명확한 커밋을 한 사람이 의도 한 것을 의미합니다). 말

는, 많은 사람들이 따라서 나는 그것이 "지역의 모범 사례"결국, 팀은 함께 작업하고 싶어 방법을 결정으로 볼 수있는 것 같아요, 스쿼시 기술을 사용합니다.

+0

자세한 설명을 주셔서 감사합니다. – Ragnarsson

0

GitLab을 사용하는 경우 병합 요청의 Changes 탭을 사용하여 결합 된 모든 커밋의 변경 사항 (즉, 병합에서 실제로 적용될 변경 사항)을 볼 수 있습니다. 그게 네가 원하는게 아니야? 당신이 코멘트에 제안, 스쿼시을 수행하려면

는 Gitlab에서 직접이 작업을 수행하는 방법 (내가 아는)이 없습니다. 따라서 로컬에 지점을 체크 아웃해야하고 커밋 (@Hatik에서 언급 한 this question에서 설명) 및 (강제) 푸시. 기존의 병합 요청은 자동으로 업데이트되며 하나의 스쿼시 된 커밋 만 포함됩니다.

편집 : 당신은 하나의 커밋의 모든 변경 사항을 스쿼시 필요가 없습니다. 물론 더 작은 수의 커밋으로 30 개의 커밋을 그룹화 할 수도 있습니다.

관련 문제