대부분의 마스터 브랜치는 트리가 아닌 링크 된 목록처럼 보입니다. 즉, 내가 한 대부분의 합병은 빨리 감기 합병이었습니다. 나는 "A successful Git branching model" 워크 플로를 따를 것이라고 생각했다.이 워크 플로우는 빨리 감기는 병합을 피하고 대신 내 기능의 트랙과 지점 분기 조인을 남기도록 지시한다. 좋은 생각이라고 가정 해 봅시다.일반적인 git 워크 플로우와 일치하도록 git 히스토리를 다시 작성하는 방법
어떻게하면 내 나무를 가장 힘들이지 않게 고칠 수 있습니까? 내가 40 커밋이 내 나무가있다
* merged side work into branch develop
|\
* * hash2 (feature branch) side work
* * hash3 (feature branch) side work
|/
* merged great feature into branch develop
|\
* * hash1 (feature branch) great feature #1 - almost done
* * hash4 (feature branch) great feature #1 - added y
* * hash5 (feature branch) great feature #1 - added x
|/
* merged documentation into branch develop
|\
| * hash6 (feature branch) documentation - added more docs
| * hash7 (feature branch) documentation - removed stuff
|/
* hash8 project-wide (develop branch): added deployment descriptors....
:
* hash1 great feature #1 - almost done
* hash2 side work
* hash3 side work
* hash4 great feature #1 - added y
* hash5 great feature #1 - added x
* hash6 documentation - added more docs
* hash7 documentation - removed stuff
* hash8 project-wide: added deployment descriptors....
내가 로그의이 종류를 원하는 (또는 유사한 버전) :
즉 내가 로그의이 종류가 있다고 여기서 제시 한 것보다 훨씬 더 지저분한 일이기 때문에, init과 cherry-picking 커밋으로부터 새로운 브랜치를 생성하는 것이 가장 어렵습니다. 리베이스 - 대화 형은 도움이 될만한 곳이지만, 그렇다면 확실하지 않습니다. rebase는 나무를 평평하게하고, 나는 그것을 일괄 처리해야합니다. 나는 feature
을 develop
으로 분기하는 것을 보여 주었지만 어떤 점에서 develop
을 master
으로 합치는 지점에서 병합 할 수도 있습니다. 방법?
나는 이것이 어떻게 작동하는지 보는 데 몇 가지 문제가 아직도 있습니다. 반드시 커밋을 스쿼시하고 싶지는 않지만, master 브랜치에서 새로운 브랜치를 생성하여 기능으로 사용하려면 마스터로 다시 병합합니다. 리베이스하는 동안 새 분기를 만들면 많은 일을하지 않는 것 같습니다. 나는 혼란 스럽다. 특정 분기에 대한 커밋을 건너 뛰고 나중에 병합해야 할 필요가 있다고 생각합니다. rebase가 보이는 단일 브랜치에서 작동하거나 잘못 사용했을 수 있습니다. – Dennis
어쩌면 내가 여러 브랜치마다 하나의 브랜치를 시작한 다음이 워크 플로우를 생성하기 위해 저글링을 수행해야 할 필요가있을 것 같다. 만약 그렇다면 어쩌면 내가 가서 git history를 그대로 두어야합니다. – Dennis
다른 브랜치의 마스터에서 수행 한 병합에 따라 브랜치를 정기적으로 리베이스해야합니다. ** git merge feature/branchA --no-commit --no-ff ** 병합을 검토하고 변경하거나 충돌을 해결하고 ** git commit ** – Franck