왜 필요한가
깃허브는 ? (Github)
깃을 쓰는사람들끼리 모인 커뮤니티
개발자들의 소셜미디어
소스코드를 저장하는 저장소가 있다. 이것을 공유할수가있디.
유명 오픈소스 ? facebook에서 만든 React 홈페이지에 들어가보면
react github로 들어갈수있다.
컴트리뷰터가 여러명이고~ , 누가 어떻게 수정했는지 볼수있고.
이런것들이 깃을 이용하고 깃허브라는 공간에서 여러사람과 나누고 있는것이다.
얼마나 변경사항이 기록되었고, 얼마나 릴리즈 되었는지도 다 기록되므로 얼마나 활발한 리포지터리인지도 알수있다.
오픈 소스를 내 깃허브로 가지고오는것이 fork
내 깃허브의 리포지터리를 내 컴퓨터(로컬환경) 으로 가져오는것이 clone
내가 로컬환경에서 변경시킨 값을 (내소유의) 리모트 리포지터리를 오리진(Origin)이라고 할수있다. 그래서 변경사항을 적용시키는것을 Push
라고 한다.
리모트 리포지터리에 변경된사항을 로컬환경으로 가져오는것을 Pull
(원래는 깃 merge
와 fetch
가 있는데 이두개를 합쳐서 통상 사용하는것이 pull
이다)
이전에 충돌을 해결하거나 선택적으로 버전관리를 받게하기위해 만들어졌다.
working directory -> git add
-> staging area -> git commit
-> repository
커밋은 중간중간에 스냅샷 하나하나를 만들어주는 느낌이다. (커밋 기록? ) 중간기록 ?
반드시 커밋 메시지를 적어줘야한다.
각각 동그라미들이 commit을 나타낸다.
중간에 초록섹 Feature가 새로운 가지가 쳐지는거처럼 나오는것이 보일것이다.
보라색 Develop에서부터파생되는것 말이다.
그거는 Branch 나뭇가지 를 의미하는데
새로운 가지를 만들어내는것을 Branching이라고 한다.
다시 가지가 합쳐지는것을 볼수있는데
이때 합쳐지는것이 merging 이라고 한다.
branch가 master가 있고 develop이 있고 feature가 있다
master는 우리가 사용자들에게 직접 배포해야할 그 프로그램의 소스가 담겨있다 (End user 버그없는 프로그램을 만나야한다) 그것이 마스터에 담겨져있다.
develop 은 개발중인 버전의 소스코드가 담겨져있는 branch이다. (충분한 테스트와, 새로운 버그를 발견해서 고친다음에 옮겨야한다)
feature는 하나하나의 기능들을 담고있다.