자세한 내용은 https://git-scm.com/book/ko/v2에 있다.
git을 더 깊게 공부하고 싶으면 위의 사이트 참고해서 공부하자
이것은 내가 공부한것만 요약해 놓은 문서로 오류가 있을수 있다. 혹시라도 오류가 있다면 바로 말씀해주시길...
Git이란?
버전 관리 시스템. 되돌리고 백업하고 협업하기 위한 도구
Working direcotry, Staging area, Repository
버전이 되기까지 3개의 공간을 거쳐간다.
1. working directory
내가 코드작업을 하는 공간. 파일들이 생성/수정/삭제되는 공간. 변경사항이 생기는 공간.
변경사항들 중 다음 버전이 될 파일들을 선별해서 그 파일들을 버전으로 만든다.
2. staging area
버전이 될 후보들이 올라오는 공간. working directory에서 선별
3. repository
내 컴퓨터 속 저장소. local 저장소
git add <파일이름>
staging area에 파일을 올림. working directory->staging area로 가는 1단계
git commit -m "commit message"
버전을 업데이트. staging area->repository로 가는 2단계.
commit message는 이 버전이 의미하는 것을 담은 메세지
이것 외에
git init : git 저장소 생성. 이 폴더에서 버전관리 시작할거라고 알림
git status : 폴더의 변경사항 알 수 있음
git log : 지금까지의 버전 확인
git diff : 버전에서의 변경사항 확인
GitHub
원격저장소. remote 저장소
Github에 코드를 밀어넣는다는 뜻은 Local 저장소에 있는 코드를 원격저장소에 넣는다는 뜻
git remote add <이름> <원격저장소url>
원격저장소에 push하려면 먼저 원격저장소를 등록해야함
원격저장소와 상호작용
git remote : 원격저장소 조회
git push : 원격으로 밀어넣기
git pull : 원격저장소 내 내용을 저장소로 당겨오기
git clone : 원격저장소 내 내용을 저장소로 복사
branch 나누기
분기를 나눈다
git 버전관리 원칙
1. 분기를 나누고 2. 각자 작업해서 3. 합친다.
git branch <branch이름> : 분기를 나눔
git checkout <branch이름> : 각자 작업
git merge <branch이름> : 합침. 갖고오고 싶은곳으로 checkout을 한다음 merge로 합침
github에서 insight에 network에서 graph를 볼 수 있음
협업의 세가지 시나리오
1. 로컬저장소 변화, 원격저장소 변화x
그냥 push하면 됨
2. 로컬저장소 변화x, 원격저장소 변화
pull한 후 변경사항이 있으면 다시 push
3. 로컬 저장소 변화, 원격저장소 변화
1) collaborator
협업할 수 있음. 접근 권한 생김. 그러나 다른 협업 도구에서는 안되는 경우가 많기 때문에 지양
2) pull request
branch를 나눠서 작업 후 요청 보내기
1. 내 계정으로 갖고 온다 => Fork
2. 내 컴퓨터로 코드를 받아온다 =>git clone <url>
3. 새로운 branch를 만든다 => git branch <branch 이름>
4. 만든 branch에서 작업한다 => git push origin <branch 이름>
5. pull request
github에서 pull request->new pull request->base:master&compare:local
create pull request
comfirm merge : 합병이 된것
+)atom을 이용하며 매우매우 쉽게 github에 push할수 있다.