분기가 병합 된 후 기능 분기에 대한 소스 분기 커밋을 어떻게 찾을 수 있습니까?병합 후 지형지 물을 다시 포팅하는 방법은 무엇입니까?
마스터 분기와 분기를 사용하여 git 워크 플로를 고려하십시오. 마스터는 다음 릴리스로 계속 진행합니다. 버그 수정은 릴리스 분기에 적용되지만 마스터 분기로 다시 포팅해야합니다.
기능 분기는 릴리스 분기에서 만들어 검토하고 릴리스 분기에 병합합니다. 마스터에 수정 사항을 적용하려면 기능 분기를 마스터 분기에 리베이스해야합니다. 그러나
git rebase --onto master release
결과는 0입니다. 릴리스가 전방으로 이동하고 헤드
git merge-base HEAD release
결과 (병합베이스가 REBASE 시작점을 결정하기 위해 내부적으로 사용되는)로이 이해된다. 따라서 rebase는 아무 것도 리베이스하지 않습니다. 유용하지 않다.
git log를 사용하여 분기 지점이 어디에 있는지 판단 할 수 있지만 분기점이 가장 많이있는 지점을 더 잘 알고 싶습니다. 목표는 이러한 일반적인 상황에 대한 자동화입니다.
간단한 예를 들어 트리 (나무 드물게이 간단하다 : :).
* 5caf21e (release) Merge pull request #689 from ...
|\
| * 9f0f210 Bug 1123: Fix bug
| * bb6b3fa Bug 1123: Reproduce bug
* 077afe0 Merge pull request #688 from ...
|\
| * e750974 (feature/bug1154) Bug 1154: Fix bug
| * 98194b9 Bug 1154: Reproduce bug
* cabb4d2 Merge pull request #681 ...
|\
| * a10c992 Bug 1110: Bug fix
|/
* 7caacee Merge pull request #673 ...
내가 마스터 지점에 e750974에서 기능/bug1154을 리베이스하고 싶다. 이 분기가 병합되고 릴리스 분기도 이동했습니다.
git rebase --onto master release feature/bug1154
결과가 적용되지 않습니다.
은 정말 자식 명령을 사용하여 cabb4d2
git rebase --onto master cabb4d2 feature/bug1154
은 어떻게 찾을 수 있습니까 싶지? 직접 git log를 해석 할 필요없이 자동화되고 다른 사람들에게 쉽게 설명 될 수있는 것.
잠깐, 'cabb4d2'는 그 그래프에서'feature/bug1154'의 조상이 되었습니까? '077afe0'는 커밋을 어디에 지형지 물이 지사로 합쳐지는 지점입니까? – Useless
@Useless correct. 이것은'git log --oneline --graph --decorate' ('git ll'에 대한 나의 별칭)의 결과가 될 그래프입니다. –
예제 트리에서 마스터가 가리키는 커밋은 무엇입니까? 아마 7caacee의 조상이나 5caf21e의 자손일까요? 당신은 "마스터는 다음 릴리스로 계속 나아 간다"고 말합니다. 마스터 란 향후 릴리스에서 지속적으로 개발 될 예정이며 릴리스 지점은 버그 수정 및 유지 관리입니까? 그렇다면, 지사는 릴리스 지점에서 무엇을하고 있습니까? – gatkin