여기 내 무지를 실례합니다.하지만 "git-flow" 모델을 연습에 넣으려고합니다 (수동으로 git-flow 도구 모음없이).git-flow는 개발 된 것보다 마스터에서 더 압축 된 히스토리를 볼 수 있습니까?
재미있는 한 가지 개념은 모든 커밋이 선의의 실행 가능한 릴리스 인 마스터 브랜치가있을 것이라는 아이디어였습니다. 따라서 v1.0.0 커밋을 마스터 태그로 설정 한 다음 v1.1.0 태그를 사용하면 master를 볼 때 2-commit-long 로그가 좋습니다. 그러나 v1.2.0을 출시 할 준비가되었고 develop
지점에는 1000 개의 중간 커밋이 있지만 이제는 로그 오프하고 "예, 출시시기"라고 말하기 버튼을 누르십시오..
제 목표는 마스터 타임 라인에 세 번째 커밋을 추가하는 것입니다. --squash
옵션을 사용하면 하나의 커밋을 마스터에 추가 할 수 있으므로 마스터 로그를보고 v1.0.0, v1.1.0 및 v1.2.0의 세 커밋을 볼 수 있습니다. 개발 지사가 길고 길다면, 스쿼시는 각 버전이 공식 릴리스 인 마스터에 대한 깔끔한 역사로 여러분을 끌어들입니다. 중간 개발을 포기할 기회는 없습니다!
나에게 문제가되는 것은 네트워크 그래프를 보면 "단절된"커밋을 생성한다는 것입니다. Git이이 세 번째 커밋을 개발 지사에 추가 한 수천 개에 달하는 것을 이해한다는 명백한 관계는 없습니다. 손으로 그린 그림과는 달리 항상 물건을 가리키는 것과는 달리 혼자서 뜨는 것 같습니다. 제 (여러 부모 일명) "화살표를 병합"얻을 병합에 대한
다른 옵션은 중간 커밋에 대한 연결을 설정하는 부작용을 갖고있는 것 같다. 그래서 갑자기 주인님은이 축복받은 3 가지 커밋뿐만 아니라 ... 개발 된 1000 가지 커밋의 전체 역사를 포함하도록 확장되었습니다. 마스터의 포인트가 릴리스 가능한 버전 만 포함하는 지점 인 경우 종류가 목적을 무력화시키는 것 같습니다.하지만 갑자기 모든 중간 상태가 마스터에 커밋을합니다. 3 개의 마스터 커밋 대신 1003
눈금 표시는 가지에서 중복되는 것을 비웃는 점에서 조금 불길한 점입니다. 그래서 자식 - 흐름에 그려진 다이어그램은 그림이며 git log
등의 터미널 출력물이 아닙니다. 마스터는 릴리스 가능 버전으로 만 구성된다는 것을 말하는 것과 같은 성명에서 기대할 수있는 것이 확실하지 않습니다.
짧은 설명 : 전체 커밋 기록을 보유하지 않는 한 릴리스 시점에서 개발과 마스터 사이에 "화살처럼 보이는"관계를 유지하는 옵션을 찾을 수 없습니다. 화살표를 많이 가지고있는 git-flow 다이어그램을 보면이 점이 걱정 스럽습니까? 앞서 설명한 시나리오에서 마스터 기록을보고 병합 된 모든 중간 개발 버전과 1003 커밋 히스토리 또는 3 커밋 히스토리를 확인해야합니까?
내가 올바르게 당신을 이해한다면, 당신은 ['--no-ff'] (http : // stackoverflow.co.kr/questions/9069061/what-of-the-the-git-merge-and-git-merge-no-ff)를 사용하십시오. – R0MANARMY
@ R0MANARMY 나는 그것을 시도했지만 여전히 역사를 연결합니다. : -/ – HostileFork
나는 그것이 "마스터 역사를 보아라."라는 것이 무엇을 의미하는지에 달려 있다고 생각합니다. 단지'git log'을 사용한다는 것을 의미한다면 eerl은 아마 맞을 것이며'--first-parent'입니다. – R0MANARMY