2016-06-13 4 views
1

저희 팀이 최근 소스 제어를 위해 Perforce 사용에서 Git로 변환했습니다. 필자가 잘 대답 할 수없는 한 가지 질문은 원점에서부터 변경 사항의 변경 사항을 올바르게 통합하는 방법입니다. 마스터가 추적 된 원점 인 마스터를 사용합니다 (두 명의 개발자가 지점에 커밋을하고 있음).원격 추적 기능이있는 지점에 마스터를 병합하십시오.

마스터에서 병합을 수행하려고했지만 현재 분기에서 수정 한 모든 파일을 표시하는 병합 커밋이 표시됩니다. 예상 되나요?

우리 팀은 명령 줄 대신 SourceTree를 사용하고 있습니다.

+2

예, 병합은 두 개의 부모와 함께 새로운 커밋을 생성하고 _ 양쪽 분기의 기록을 병합합니다. 두 브랜치에서 동일한 파일이 변경되면 다른 브랜치의 변경 사항을 가져 와서 해당 파일을 수정 한 커밋을 볼 수 있습니다. – Useless

+0

이것은 실제 병합 또는 빠른 전진 병합입니다. BranchA를 BranchB에 병합하면 BranchA의 모든 커밋이 BranchB에 도입됩니다. BranchB의 헤드가 BranchA 헤드의 조상 인 경우에는 빠른 전달 병합이 대신 수행됩니다. '--no-ff '옵션은 빨리 감기 경우에도 병합을 실제 병합으로 해석 할 수 있습니다. BranchA의 커밋 중 일부만 필요하면 대신'git cherry-pick' 또는'git merge'를 사용할 수 있습니다. – ElpieKay

답변

1

팀의 여러 구성원이 기능 분기를 사용하는 경우 가장 좋은 방법은 merge이며 다른 경우에는 rebase을 사용하는 것이 좋습니다.

병합은 기본적으로 빨리 감기 (--ff)이며 가능할 때마다 (충돌 등) 빨리 감기되지 않습니다 (--no-ff).

빨리 감기를하지 않으면 병합 분기에 대해 알려주는 메시지와 함께 추가 병합 (사례에서와 같이)이 생성되고 부모는 참조를 커밋합니다.

일부 people (및 GitHub 같은 도구)은 강제로 을 병합하여 git 로그의 가독성과 명확성을 향상시킵니다.