이 포스팅은 Development Method 시리즈 10 편 중 6 번째 글 입니다.
목차
Version Control
- revision Control
- source Control
- 비교 기능
- 복원 기능
- 병합 기능
- 마일스톤 별로 관리가 되어야 한다.
중앙집중형, 분산형
- 중앙집중형
- 장점
- 단점
- 내가 필요할 때 모든 파일을 가져와야 한다.
- 변화를 일으키면 중앙집중에 영향을 준다.
- 분산형
- 각가따로 버전을 가지고 있는데 필요할 때 영향을 줄 수 있음
- 고립형으로 할 수도 있음
- 중앙서버는 저장용으로 관리
version control
example
- master
- 중간에 가다가 tag를 닮. 의미가 있을 때 단다.
- develop
- 개발용 브랜치
- feature
- 시험용으로 기능을 따서 개발하다가 괜찮으면 develop에 merge
- release branches
- 안정화 중심으로 작업 후 master에 포함
example2
- feature branches
- develop
- release branches
- hotfixes
- master
- branch(분기)
- change
- checkout
- 브랜치 탈출하는 방법
- 코드 작업
- Commit 만들기
- 원격 저장소에 푸시
- 동료 개발자는 해당 레포를 클론
- 변경 사항이 있다면 fetch로 확인후 pull
- branch를 따서 내가할 부분을 수정
- merge 한다.
- 자 근데 여기서 그냥 merge하기 찝집하다.
- Pull request
아무나 Push가능? X Fork를 떠야함
- Fork를 뜬다.
- clone 해서 로컬로 가져온다.
Concurrent Version System(CVS)
- 2008년에 멈춤
- C 사용
- Unixlike
- 클라이언트 서버
- 중앙 집중형 방식
Apache Subversion(SVN)
- Git과 양대산맥
- 아파치 웹서버, GCC 컴파일러
- Centerized 방식
Git
- 분산화 시스템
- 작고 빠르다. 부하가 없다.
- Pro git book
- 왜 유명한가?
- 리누스 토발즈가 만들었다.
- 리눅스 만들기 위해 만들었다.
- 모든 소스코드를 풀세트로 가지고 있다.
- 백업도 다되어 있다.
-
Distributed revision control systems(DVCS)
- 중앙 처리 시스템
- 일단 Central Repository를 갖는다.
- local로 모두 가져온다.
- 작업이 끝나면 main에 넣는다. 이 때 project maintainer가 확인하고 넣는다.
- 다른 사람이 작업하고 중앙에 동기화 시킨다.
- 분산 처리 방식
- Pull Requests
- 당겨가줬으면 좋겠습니다.
- Maintainer에게 부탁하는 것
- 허락, 거절
- PR에는 리뷰를 거침
- 요즘에는 자동화도 발생함
- Pull Requests
GitHub
github workflow
github summary
- Git repo hosting service
- 2008
- 4000만명
- ruby
- web based
- Source code Management