각각 local branch 들 간 협업을 위해 origin 을 사용하지 않는 방법들은 무엇이 있을까요?

2013-08-29 20:25

이전 부터 아래 링크에서 이해하지 못하고 있는게 있습니다.(엄청 많은데...그 중 하나만...)

http://dogfeet.github.io/articles/2011/a-successful-git-branching-model.html

"개발자 모두 origin에 push/pull할 수 있지만, 중앙집중식에서는 모든 개발자가 다른 모듈 팀에서 수정한 것까지도 pull해야 한다. 예를 들어 혼자 하기 어려운 기능은 둘, 셋이서 함께 개발하고 나서 origin에 push해야 한다. 개발 중인 것을 origin에 push하지 않는다. 이 그림에서 Alice와 Bob, Alice와 David, Clair와 David은 각각 팀을 만들었다 이것을 Git 언어로 풀어보면 Alice는 자신의 저장소에 Bob의 저장소를 bob이라는 이름으로 추가한다는 것을 말한다. 나머지 팀원과 팀도 모두 똑같이 한다"

문맥에 대해서 이해못하고 있는 부분은 다음과 같습니다. 개발 중인 것은 origin 에 push 하지 못한다고 했는데 이는 위링크에서 뒤에 언급하는 master에 완료되지 않은 코드는 push 하지 말라는 의미인것 같습니다.

배포할(production-ready) 코드는 origin/master에 두고 관리한다.

그렇다면 개발 단계의 공유가 필요할때 origin에 별도의 branch 를 통해 공유를 할 수 있을 것 같은데 이런 상황에서는 branch 의 수가 엄청나게 증가하고 살아있는 branch 를 파악할수 없을거 같아 거부감이 드네요. 음....또 다른 문제가 있을까요??

이것을 Git 언어로 풀어보면 Alice는 자신의 저장소에 Bob의 저장소를 bob이라는 이름으로 추가한다는 것을 말한다.

링크 글에서는 origin 에 특별하게 branch 두는 것보다 "각각의 local branch 들 간 pull/push 가 되어야 하지않을까?" 하고 말하는 것 같습니다.

각각 local branch 들 간 협업을 위해 origin 을 사용하지 않는 방법들은 무엇이 있을까요?

0개의 의견 from FB

1개의 의견 from SLiPP

2013-08-30 14:39

저도 git-flow를 완전히 이해하고 사용하는 것은 아니지만..

개발 중인 것은 origin 에 push 하지 못한다 라는 부분은 git-flow 관점에서 해석해 보면 아직 개발중인 feature를 origin/develop branch에 push해선 안된다고 하는 것 같습니다.

모두가 하나의 branch(develop)만 사용하는 것이 아니라 feature별 branch를 나누어 작업을 한 뒤, 완성된 feature는 develop branch에 merge하는 거지요. 다른 feature를 작업중인 그룹은 git merge develop을 통해 완성된 feature만 develop branch를 통해 공유받아 작업하구요.

각 branch를 모두 체크할 필요 없이 개별 feature branch는 중앙의 develop branch만 확인하면 되기 때문에 굳이 origin에 branch를 두는 것을 꺼릴 필요는 없을 것 같습니다.

위의 이미지 때문에 저도 헷갈렸는데, 그냥 무시하고 아래 이미지만 보는게 더 이해에 도움이 될 듯 하네요..

의견 추가하기

연관태그

← 목록으로