GIt 과 Github
📌Git 버전 관리 시스템
버전 관리 시스템의 목적
- 이력 관리
- 무언가 잘못됐을 때 돌아가기
- 특정 시점 사이의 변화 비교하기
- 누가, 왜 수정했는지 파악하기
- 분기 관리
- 큰 변경 작업을 안전하게 진행하기
- 병렬적으로 진행된 작업을 편리하게 통합하기
- 종류 : git, mercurial, subversion...
git은 분산(저장소) 버전 관리 시스템
- 서버에서도 진행, 컴퓨터에서도 진행 각각 진행한다.
- 로컬과 서버에 동시 존재한다.
git은 기본 동작으로 최대한 변화를 발생시키지 않으려 한다.
git 저장소 생성 방법
- git init(내 로컬에서 먼저 만드는 것)
- git clone(remote 에 있는걸 그대로 복제해오는 것)
commit
- 의미 있는 변화
- 미래를 위한 보험(현재의 변화를 추적하기 위한 용도)
- 하나로 만들어놓은 커밋을 3개로 분리하기는 힘듬
- 3개로 쪼개어 놓은 것을 하나로 합치는 것은 쉬움
- 가급적이면 쪼개는 것이 낫다.
Staging Area
branch
- 분기관리
- 위험한 작업을 바로 메인에다 올려둘 수 없으니 분리해둠
- 용도에 따른 분리
- 브랜치를 합치는 명령어 merge / bebase
📌Github
github에 push하기
로컬 저장소에 있는 commit 들을 github에 반영
- push 를 해준다.
- pull (remote 에 있는걸 rocal로 가져온다.) fetch 후 pull
- Branch Workflow
- git flow, gitbhub flow(가장 간단), gitlab flow, trunk-based flow
- pull request
Fork
- (오픈소스에 기여할 때 필수, 협업을 할 때 선택적으로 적용)
충돌최대한 적게 하면서 push 하는 방법
- pull 을 자주 한다.
- 두 작업자가 같은 파일을 수정하지 않도록 작업을 나눈다.
- 작업량 작게 만들기