협업을 위한 GIT 활용
Github은 Git 원격 저장소 + Git 으로 할 수 있는 커뮤니티 기능 서비스
Git은 commit(커밋) 을 통해 '현재 프로젝트의 상태'을 저장하고 조회
버전관리와 commit
commit 할 때!
add(staging) 를 사용하면, 컴퓨터에서 여러 파일을 수정했어도 '기능 A 수정' 에 관련된 파일만 골라서 commit 할 수 있다.
- 내가 기록할 작업 내역이 무엇인지 생각하고,
- 관련된 파일만 add 해서
- 작업내역을 나타내는 commit 메시지 적기!
commit id 는 나중에 커밋을 관리하고 되돌릴 때 사용하는 중요한 정보!
commit id - 각 commit 을 관리하기 위해 id 가 부여
원격 repo 사용하기
repo(리포, repository 리포지토리의 약자) Git으로 관리되는 프로젝트
로컬 repo(local repository) 내 컴퓨터에 저장되어있는 리포지토리
원격 repo(remote repository) Github처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것
추적(Tracking, 트랙킹 / branch tracking) 로컬 repo 가 원격 repo 를 연결하는 것
push(푸쉬) 로컬 repo 의 commit 들을 원격 repo 에 반영하는 것
pull(풀) 원격 repo 의 commit 들을 로컬 repo 에 반영하는 것
clone(클론, 복제) 원격 repo 를 내 컴퓨터에서도 사용할 수 있도록 가져오는 것
혼자 Git 프로젝트 작업을 할 때 순서 pull -> 로컬 repo commit -> push
1) 원격 repo 와 로컬 repo 의 상태를 똑같이 맞춰주기, 즉 로컬 repo 에 원격 repo 작업내역 가져오기 (pull)
2) 로컬 repo 의 작업 내용을 저장하고 (commit)
3) 원격 repo 에 로컬 repo 내용을 반영 (push)
원격 repo 와 로컬 repo 를 연결해서 내용을 반영하고 싶을 땐 어떤 방법을 써야할까?
원격 repo 와 로컬 repo 는 왜 따로 있을까?
push 와 pull 의 개념을 원격 repo와 로컬 repo 를 포함해 그림으로 그려보세요.
작업방식
1단계. 누가 이 작업 할 것인지 정한다. - Issue
2단계. 각자 맡은 것을 작업한다. - Branch
3단계. 각자 작업을 프로젝트에 합친다. - merge
(경우에 따라). 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge
Issue
브랜치(Branch)
나뭇가지가 뻗어나오듯 기능에 맞게 나누어 작업
현재 작업할 브랜치를 선택하는것 check out
Merge(병합, 머지)
브랜치를 다른 브랜치에 합치는 것입니다. 즉, 특정 브랜치의 commit 들을 다른 브랜치의 commit 내역에 모두 반영하는 것
실제 프로젝트에서는 언제나 issue 먼저 만들고 논의 - 할당한 후에 작업을 한다는 것!
Merge conflict(병합 충돌) 충돌 해결하기
에러를 내지않는것이 아니라 에러를 해결하는게 중요!
git에 대해 기본적인것들과 git에 대해 많은 내용을 알게되었다. 복습을 통해서 기능들을 익숙하게 사용하도록 손에 익혀야겠다! 능숙한 프로그래머가 되려면 능숙하게 '버그'를 찾아내고 수정하는 법을 익혀야 한다. 프로그래밍을 하면서 던져야할 질문은 이것이 맞느냐 틀리느냐가 아니라 버그를 수정할 수 있느냐 없느냐다. 오늘 제일 인상깊었던 문장!